使用JSON中的把手访问嵌套数组并循环遍历

时间:2016-02-13 17:27:27

标签: javascript arrays json handlebars.js each

如何使用把手访问嵌套数组的结果?

我有这个虚拟数据:

var data = [{
    articles : [{
        id : '0',
        url : 'foo',
        title : 'Foo',
        body : 'some foo bar',
        category : 'foo',
        tags : [
            'foo'
        ]
    }, {
        id : '1',
        url : 'foo-bar',
        title : 'Foo bar',
        body : 'more foo bar',
        category : 'foo',
        tags : [
            'foo', 'bar'
        ]
    }, {
        id : '2',
        url : 'foo-bar-baz',
        title : 'Foo bar baz',
        body : 'more foo bar baz',
        category : 'foo',
        tags : [
            'foo',
            'bar',
            'baz'
        ]
    }]
}, {
    users : [{
        name: 'Admin'
    }, {
        name: 'User'
    }]
}];

这是我的模板文件:

{{#each data.[0].articles}}
<article class="id-{{this.id}}">
  <h1><a href="/journal/{{this.url}}">{{this.title}}</a></h1>
  <div class="category"><a href="/category/{{this.category}}">{{this.category}}</a></div>
  <p>{{this.body}}</p>
  <!--<div class="tags"><a href="/tags/{{this.tags}}">{{this.tags}}</a></div>-->
  <div class="tags">
    <ul>
      {{#each ../tags}}
      <li><a href="/tags/{{this}}">{{this}}</a></li>
      {{else}}
    </ul>
  </div>
</article>

{{else}}
<p class="empty">No content</p>
{{/each}}

如果我使用:

<div class="tags"><a href="/tags/{{this.tags}}">{{this.tags}}</a></div>

他们将整体插入。有没有办法逐个访问它们?

谢谢!

1 个答案:

答案 0 :(得分:0)

我的不好,这是语法错误。我没有用{{/each}}关闭每个嵌套,但我使用了{{else}}

{{#each data.[0].articles}}
<article class="id-{{this.id}}">
  <h1><a href="/journal/{{this.url}}">{{this.title}}</a></h1>
  <div class="category"><a href="/category/{{this.category}}">{{this.category}}</a></div>
  <p>{{this.body}}</p>
  <!--<div class="tags"><a href="/tags/{{this.tags}}">{{this.tags}}</a></div>-->
  <div class="tags">
    <ul>
      {{#each tags}}
      <li><a href="/tags/{{this}}">{{this}}</a></li>
      {{/each}}
    </ul>
  </div>
</article>

{{else}}
<p class="empty">No content</p>
{{/each}}