Mustache(轻逻辑模板解析引擎)

 

简介

Mustache 是一个轻逻辑模板解析引擎(Logic-less templates),它的优势在于可以应用在 Javascript、PHP、Python、Perl 等多种编程语言中。

语法

结合下面的代码理解语法:
14行
<script type="text/javascript" src="mustache.js"></script>
<script type="text/javascript">
var data = {
"company": "Apple",
"address": {
"street": "1 Infinite Loop Cupertino</br>",
"city": "California ",
"state": "CA ",
"zip": "95014 "
},
"product": ["Macbook ","iPhone ","iPod ","iPad "]
}
 
  • {{KeyName}}:Mustache的标示符,表示一个变量值
  • {{#keyName}} {{/keyName}}:以#开始以/结束,表示一个区块,它会根据上下文中的Mustache变量对区块进行一次货多次渲染。区块可以用来区分变量的作用域,相当于一个if条件判断语句。
6行
var tpl = '{{#address}} <p>{{street}},{{city}},{{state}}</p> {{/address}}';
var html = Mustache.render(tpl, data);
 
//输出:
<p>1 Infinite Loop Cupertino&lt;/br&gt;,California,CA</p>
注意:如果{{#keyName}} {{/keyName}}中的 keyName 值为 null, undefined, false;则不渲染输出任何内容。
  • {{^keyName}} {{/keyName}}:该语法与{{#keyName}} {{/keyName}}类似,不同在于它是当 keyName 值为 null, undefined, false 时才渲染输出该区块内容。
5行
var tpl = {{^nothing}}没找到 nothing 键名就会渲染这段{{/nothing}};
var html = Mustache.render(tpl, data);
//输出:
没找到 nothing 键名就会渲染这段
  • {{.}}:表示枚举,可以循环输出整个数组
5行
var tpl = '{{#product}} <p>{{.}}</p> {{/product}}';
var html = Mustache.render(tpl, data);
//输出:
<p>Macbook </p> <p>iPhone </p> <p>iPod </p> <p>iPad </p>
  • {{{keyName}}}:{{keyName}}输出会将等特殊字符转译,如果想保持内容原样输出可以使用{{{}}},例如:
4行
var tpl = '{{#address}} <p>{{{street}}}</p> {{/address}}'
//输出:
<p>1 Infinite Loop Cupertino</br></p>
  • {{!comments}}:表示注释,注释后不会渲染输出任何内容。

 

 参考:http://mustache.github.io/

 

posted @ 2020-07-20 15:00  贪玩玩的小狮子  阅读(267)  评论(0编辑  收藏  举报