一起源码网

  • www.171739.xyz
  • 全球最大的互联网技术和资源下载平台
搜索
一起源码网 门户 高级进阶 查看主题

有渔微信小程序技术分析《五》Mustache语法要点总结

发布者: chinasars | 发布时间: 2018-1-8 17:29| 查看数: 1718| 评论数: 1|帖子模式

小程序开发的wxml里,用到了Mustache语法。所以,非常有必要把Mustache研究下。

什么是Mustache?Mustache是一个logic-less(轻逻辑)模板解析引擎,它是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,通常是标准的HTML文档。比如小程序的wxml中的代码:

{{userInfo.nickName}},这里的{{ }}就是Mustache的语法。

1Mustache的模板语法很简单,就那么几个:

  1. {{keyName}}
  2. {{{keyName}}}
  3. {{#keyName}} {{/keyName}}
  4. {{^keyName}} {{/keyName}}
  5. {{.}}
  6. {{!comments}}
  7. {{>partials}}

 

1{{keyName}}

 简单的变量替换:{{name}}

  1. var data = { "name": "weChat" };
  2. Mustache.render"{{name}} is excellent."data);

返回 

  1. weChat is excellent.

 变量含有html的代码,如:
等而不想转义,可以在用{{&name}}

  1. var data = {
  2. "name" : "<br>weChat<br>"
  3. };
  4. var output = Mustache.render("{{&name}} is excellent.", data);
  5. console.log(output);

返回

  1. <br>weChat<br> is excellent.

 

去掉"&"返回是转义为:

  1. <br>weChat<br> is excellent.

另外,你也可以用{{{ }}}代替{{&}}

 

 若是对象,还能声明其属性

  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);

返回

  1. name:Chen Jacksonage:18

 

2{{#keyName}} {{/keyName}}

#开始、以/结束表示区块,它会根据当前上下文中的键值来对区块进行一次或多次渲染。它的功能很强大,有类似ifforeach的功能。

  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);

返回

  1. <b>Moe</b>
  2. <b>Larry</b>
  3. <b>Curly</b>

3{{^keyName}} {{/keyName}}

该语法与{{#keyName}} {{/keyName}}类似,不同在于它是当keyName值为null, undefined, false时才渲染输出该区块内容。比如:

  1. var data = {
  2. "name" : "<br>weChat<br>"
  3. };
  4. var tpl = ‘{{^nothing}}没找到 nothing 键名就会渲染这段{{/nothing}}’;
  5. var output = Mustache.render(tpl, data);

返回:没找到 nothing 键名就会渲染这段

 

4{{.}}

    {{.}}表示枚举,可以循环输出整个数组,例如:

  1. var data = {
  2. "product": ["Macbook ","iPhone ","iPod ","iPad "]
  3. }
  4. var tpl = '{{#product}} <p>{{.}}</p> {{/product}}';
  5. var html = Mustache.render(tpl, data);

返回:

  1. <p>Macbook </p> <p>iPhone </p> <p>iPod </p> <p>iPad </p>

 

5、{{!  }}表示注释

6{{>partials}}

>开始表示子模块,当结构比较复杂时,我们可以使用该语法将复杂的结构拆分成几个小的子模块。

最新评论

生活在别处 发表于 2022-5-8 17:34
下载网站源码模板

一起源码让程序更轻更快

www.171739.xyz

工作时间 周一至周六 8:00-17:30

侵权处理

客服QQ点击咨询

关注抖音号

定期抽VIP

Copyright © 2016-2021 https://www.171739.xyz/ 滇ICP备13200218号

快速回复 返回顶部 返回列表