Mustache Syntax

来源:互联网 发布:和钱夫人一样的淘宝店 编辑:程序博客网 时间:2024/05/16 19:15

参考

  • http://www.open-open.com/lib/view/open1416792564461.html
  • http://mustache.github.io/

简介

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

语法

结合下面的代码理解语法:

<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条件判断语句。

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 时才渲染输出该区块内容。
var tpl = {{^nothing}}没找到 nothing 键名就会渲染这段{{/nothing}};var html = Mustache.render(tpl, data);//输出:没找到 nothing 键名就会渲染这段
  • {{.}}:表示枚举,可以循环输出整个数组
var tpl = '{{#product}} <p>{{.}}</p> {{/product}}';var html = Mustache.render(tpl, data);//输出:<p>Macbook </p> <p>iPhone </p> <p>iPod </p> <p>iPad </p>
  • {{> partials}}:以>开始表示子模块,如{{> address}};当结构比较复杂时,我们可以使用该语法将复杂的结构拆分成几个小的子模块,例如:
  • {{{keyName}}}:{{keyName}}输出会将等特殊字符转译,如果想保持内容原样输出可以使用{{{}}},例如:
var tpl = '{{#address}} <p>{{{street}}}</p> {{/address}}'//输出:<p>1 Infinite Loop Cupertino</br></p>
  • {{!comments}}:表示注释,注释后不会渲染输出任何内容。
0 0
原创粉丝点击