微信小程序中用到了大量Mustache语法,特发此文学习一下

1.简单的变量调换:{{name}}

1 var data = { "name": "Willy" };

2 Mustache.render("{{name}} is awesome.",data);

返回成果 Willy is awesome.

2.若是变量含有html的代码的,例如:<br>、<tr>等等而不想转义可以在用{{&name}}

1 var data = {

2 "name" : "<br>Willy<br>"

3 };

4 var output = Mustache.render("{{&name}} is awesome.", data);

5 console.log(output);

成果:<br>Willy<br> is awesome.

去掉"&"的成果是转义为:&lt;br&gt;Willy&lt;br&gt; is awesome.(默认将"<"和">"转义)

3.若是是对象,还能申明其属性

 1 var data = {

2 "name" : {

3 "first" : "Chen",

4 "last" : "Jackson"

5 },

6 "age" : 18

7 };

8 var output = Mustache.render(

9 "name:{{name.first}} {{name.last}},age:{{age}}", data);

10 console.log(output);

成果:name:Chen Jackson,age:18

4.{{#param}}这个标签很强大,有if断定、forEach的功能。

1 var data = {

2 "nothin":true

3 };

4 var output = Mustache.render(

5 "Shown.{{#nothin}}Never shown!{{/nothin}}", data);

6 console.log(output);

若是nothin是空或者null,或者是false都邑输出Shown.相反则是Shown.Never shown!。

5.迭代

 1 var data = {

2 "stooges" : [ {

3 "name" : "Moe"

4 }, {

5 "name" : "Larry"

6 }, {

7 "name" : "Curly"

8 } ]

9 };

10 var output = Mustache.render("{{#stooges}}<b>{{name}}</b>{{/stooges}}",

11 data);

12 console.log(output);

输出:<b>Moe</b>

<b>Larry</b>

<b>Curly</b>

6.若是迭代的是数组,还可以用{{.}}来调换每个元素

1 var data = {

2 "musketeers" : [ "Athos", "Aramis", "Porthos", "D""Artagnan" ]

3 };

4 var output = Mustache.render("{{#musketeers}}* {{&.}}{{/musketeers}}",

5 data);

6 console.log(output);

输出:* Athos

* Aramis

* Porthos

* D""Artagnan

7.迭代输出的还可所以一个function返回的成果,function可以读取当前变量的高低文来获取其他属性履行其他操纵

 1 var data = {

2 "beatles" : [ {

3 "firstName" : "John",

4 "lastName" : "Lennon"

5 }, {

6 "firstName" : "Paul",

7 "lastName" : "McCartney"

8 }, {

9 "firstName" : "George",

10 "lastName" : "Harrison"

11 }, {

12 "firstName" : "Ringo",

13 "lastName" : "Starr"

14 } ],

15 "name" : function() {

16 return this.firstName + " " + this.lastName;

17 }

18 };

19 var output = Mustache

20 .render("{{#beatles}} *{{name}}{{/beatles}}", data);

21 console.log(output);

输出: *John Lennon

*Paul McCartney

*George Harrison

*Ringo Starr

8:办法里面可以再履行变量中的表达式

 1 var data = {

2 "name" : "{{age}}" + "Tater",

3 "bold" : function() {

4 return function(text, render) {

5 console.log(text);

6 return "<b>" + render(text) + "</b>";

7 };

8 },

9 "age" : 18

10 };

11 var output = Mustache.render("{{#bold}}Hi {{name}}.{{/bold}}", data);

12 console.log(output);

输出成果:

Hi {{age}}Tater.
<b>Hi 18Tater.</b>

9.{{^}}与{{#}}相反,若是变量是null、undefined、 false、和空数组讲输出成果

10.{{!  }}注释

微信小程序入门——Mustache语法学习的更多相关文章

  1. 从零开始的微信小程序入门教程(一)

    之前说要和同事一起开发个微信小程序项目,现在也在界面设计,功能定位等需求上开始实施了.所以在还未正式写项目前,打算在空闲时间学习下小程序.本意是在学习过程中结合实践整理出一个较为入门且不是很厚的教程, ...

  2. 微信小程序入门-刘志敏-专题视频课程

    微信小程序入门-269人已学习 课程介绍        微信小程序入门基础,给入门级程序员好的教程.教程中对小程序的介绍到小程序的基本使用都做了详细的介绍,教程以实用的实现作为案例,如列表下拉刷新.抽 ...

  3. 天河微信小程序入门《三》:打通任督二脉,前后台互通

    原文链接:http://www.wxapp-union.com/forum.php?mod=viewthread&tid=505&extra=page%3D1 天河君在申请到https ...

  4. 我的微信小程序入门踩坑之旅

    前言 更好的阅读体验请:我的微信小程序入门踩坑之旅 小程序出来也有一段日子了,刚出来时也留意了一下.不过赶上生病,加上公司里也有别的事,主要是自己犯懒,就一直没做.这星期一,赶紧趁着这股热乎劲,也不是 ...

  5. 微信小程序入门正确姿势(一)

    [未经作者本人同意,请勿以任何形式转载] >>>前言 这是 [认真学编程] 系列的 第4篇 文章(微信小程序入门系列),欢迎点赞分享.写留言,这些都是对我最好的支持. 本系列适合有一 ...

  6. 微信小程序入门篇

    微信小程序入门篇: 准备工作 IDE搭建 就不多说了,没有内测码去下载个破解版吧,我用了一下,学习完全够了!IDE破解版+安装教程 图片发自简书App 知识准备 JavaScrip还是要看看的,推荐教 ...

  7. 微信小程序入门与实战 常用组件API开发技巧项目实战*全

    第1章 什么是微信小程序? 第2章 小程序环境搭建与开发工具介绍 第3章 从一个简单的“欢迎“页面开始小程序之旅 第4章 第二个页面:新闻阅读列表 第5章 小程序的模板化与模块化 第6章 构建新闻详情 ...

  8. 微信小程序入门与实战 从0到1进行细致讲解 涵盖小程序开发核心技能下载

    第1章 什么是微信小程序? 第2章 小程序环境搭建与开发工具介绍 第3章 从一个简单的“欢迎“页面开始小程序之旅 第4章 第二个页面:新闻阅读列表 第5章 小程序的模板化与模块化 第6章 构建新闻详情 ...

  9. 微信小程序入门知识点总结

    微信小程序入门知识点总结 前情介绍 ​ 微信小程序就不多介绍了,我们想要开发微信小程序首先得到微信公众平台 下方的小程序处注册相关账号并登录,接着填写小程序相关资料.在设置处可找到AppID用以开发微 ...

随机推荐

  1. 模拟Vue之数据驱动5

    一.前言 在"模拟Vue之数据驱动4"中,我们实现了push.pop等数组变异方法. 但是,在随笔末尾我们提到,当pop.sort这些方法触发后,该怎么办呢?因为其实,它们并没有往 ...

  2. MySQL 性能优化神器 Explain 使用分析

    简介 MySQL 提供了一个 EXPLAIN 命令, 它可以对 SELECT 语句进行分析, 并输出 SELECT 执行的详细信息, 以供开发人员针对性优化. EXPLAIN 命令用法十分简单, 在 ...

  3. AsyncTask兼容性

    简介 AsyncTask是Android系统提供的异步方式,其优点在于在子线程执行任务,并将结果传递给主线程. 实现方式 AsyncTask封装了Executor和Handler. 基本使用 通过As ...

  4. .PHP后缀大写导致Linux下Composer找不到类

    在本地Windows写完一个Composer包,上传到Linux报错找不到类,纠结了一下午,最后发现是.PHP后缀大写导致的问题. mv Google2FA.PHP Google2FA.php

  5. sublime & atom 插件

    1. autofilename(sublime) autocomplete-paths (atom): 自动路径 2. autoprefixer: 自动添加前缀  : https://github.c ...

  6. Android学习笔记(三)Android开发环境的搭建

    一.配置JAVA环境 二.配置Android开发环境 可以安装adt-bundle-windows,该压缩包一般自带Eclipse.或者安装Android Studio,要注意SDK的版本是否符合要求 ...

  7. 未能加载文件或程序集"Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad的真正解决办法

    未能加载文件或程序集"Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3 ...

  8. Map - leetcode [哈希表]

    149. Max Points on a Line unordered_map<float, int> hash 记录的是斜率对应的点数 unordered_map<float, i ...

  9. maven项目如何引用本地的jar包

    下载该jar包到本地(如下载目录结构为:D:\Users\lu.wang\Downloads\searchservice\searchservice\jar\ttd.search.searchserv ...

  10. Erlang虚拟机的启动

    Erlang虚拟机的启动 erl实际上是一个shell脚本,设置几个环境变量之后,调用执行erlexec.erlexec的入口点在 otp_src_R15B01/erts/etc/common/erl ...