是否可以访问Mustache / Hogan中的多个对象级别?

时间:2012-10-04 01:06:49

标签: mustache hogan.js

我有一个大致如下的json对象:

data = \
{
   'id' : 10000 ,
   'title' : 'Sample Article',
   'authors' : [
       {
          'id' : 20000,
          'name' : 'John Doe'
       },
       {
          'id' : 20001,
          'name' : 'Jane Doe'
       }
   ]
}

在循环data.authors的同时,我需要同时访问root id(data.id)和本地id(data.authors[author].id

Mustache有可能吗?

我目前的解决方法是将data.id复制到data.article_id中,因为访问变量级别似乎可以在规范和实践中访问。我找不到有关变量命名条件的任何内容。

1 个答案:

答案 0 :(得分:2)

如果您将文章作为命名空间对象传递,则可以:

data = {
  article: {
    id: 10000,
    title: 'Sample Article',
    authors: [
      { id: 20000, name: 'John Doe' },
      { id: 20001, name: 'Jane Doe' }
    ]
  }
}

然后你可以这样做:

{{# article.authors }}
  Article ID: {{ article.id }}
  Author ID:  {{ id }}
{{/ article.authors }}

如果您想将“文章”保留为渲染上下文,请将整个模板包装在{{# article }}部分中,然后您将能够将作者称为{{# authors }},同时仍然可以在需要时访问{{ article.id }}