迭代html模板中的数组字段

时间:2013-10-08 10:01:02

标签: javascript meteor

我有一个书签集合:

> db.Bookmarks.find()
{ "Name" : "Lenta.ru", "Timestamp" : 1381233418275, "URL" : "http://lenta.ru", "_id" : "zS2ccZXkGLENzN2Bx", "tags" : [  "asdx" ] }
{ "Name" : "Another", "Timestamp" : 1381234763188, "URL" : "http://ya.ru", "_id" : "qAB46c38hEFSw3NTE", "tags" : [  "one",  "two" ] }

字段'tags'具有数组类型。

我有一个HTML模板来迭代书签:

<template name="bookmarks">
    {{#each bookmarks}}
          <a href="{{URL}}" class="bookmark_url">{{Name}}</a>
          <div> {{tags}} </div>
        {{/each}}
</template>

我想将每个标签显示为单独的“div”。像这样:

<template name="bookmarks">
    {{#each bookmarks}}
          <a href="{{URL}}" class="bookmark_url">{{Name}}</a>
          {{#each tags}}
             <div> {{current_tag}} </div>
          {{/each}}
        {{/each}}
</template>

我该怎么做?

感谢。

2 个答案:

答案 0 :(得分:1)

在迭代一个简单数组时,使用{{this}}来访问每次迭代的值。

{{#each tags}}
  <div>{{this}}</div>
{{/each}}

我建议将tags数组转换为对象数组,例如:

"tags": [{_id: "1", "somevalue"}, {_id: "2", "someothervalue"}]

当涉及唯一ID时,Spark渲染引擎能够更好地决定何时重绘#each的内容。参考:http://fogofcode.wordpress.com/2013/03/26/on-the-importance-of-_id-when-iterating-with-each-in-handlebarsmeteor/

答案 1 :(得分:0)

{{#each current_tag in tags}}
    <div> {{current_tag}} </div>
{{/each}}