最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Mustache.js 嵌套数组使用方法
时间:2014-08-16 编辑:简简单单 来源:一聚教程网
如果观察Mustache1模板的填充数据,会发现最深层的通常是一个对象,对象的key在mustache模板中占位,value值则显示在key所占的位置。
如下模板:
代码如下 | 复制代码 |
* {{name}} * {{age}} * {{place}} * {{{place}}} 数据: { "name": "陈三", "place": "福州平潭" } |
渲染结果:
* 陈三
*
* <b>福州平潭</b>
* 福州平潭
以上示例十分直观。但碰到value是数组时,Mustache模板就显得委婉。
它引入一个Section(块)的概念,从{{#key}}开始,以{{/key}}结尾。Section会根据value值的情况渲染出一个或多个Section中包含的代码。
如下模板:
代码如下 | 复制代码 |
{{#person}} {{name}} {{/person}} 数据: { person: [ "name": "陈三", "name": "陈四" ] } 渲染的结果会是: 陈三 陈四 |
但我们常常是根据数据来写模板的。
比如:
代码如下 | 复制代码 |
{ person: [ "陈三", "陈四" ] } |
这个数据里,value值是一个数组,数组中的单个组成并没有显式的key存在。这时,模板是这样写的:
代码如下 | 复制代码 |
{{#person}} {{.}} {{/person}} |
如果你用过Linux系统,会十分清楚,.号表示当前目录。模板中的.则表示数据的当前上下文环境,因为value是一个数组,所以Mustache模板在解析时会自动循环输出。
渲染的结果是:
陈三
陈四
再来看一组有嵌套的数据:
代码如下 | 复制代码 |
{ person: [ {'lastName': '陈', firstName: ['三', '四']}, {'lastName': '王', firstName: ['二']} ] } 我希望渲染的结果如下:
|
这个模板的写法如下:
代码如下 | 复制代码 |
{{#person}} {{/person}} |
模板写成这样,我个人觉得,已经颇为失败。因为直观度降了很多,初学者不认真琢磨,恐怕不能一眼看明白。
另外,如果你想输出数组的索引(index)值,Mustache语法并不支持,Ractive.js2对其做了扩展,甚至支持输出key本身的值。
相关文章
- JS数组搜索之折半搜索实现方法分析 07-28
- 详谈js中数组(array)和对象(object)的区别 05-05
- 纯js三维数组实现三级联动效果 03-17
- js数组和splice的用法 js数组和splice怎么用 12-05
- JS 数组属性、方法详解详解介绍 09-22
- 几种常用的js数组去重方法 06-28