0

例如,我有以下数据集

  dataset = {header: ' header' } 

  dateline = { content: 'list of dates' } 

  monday = [
        { food:'teacake' , drink:'orange' } 
        ]

  tuesday = [
        { food:'eggs' , drink:'beer' } 
        ]    

  dateline.monday = monday
  dateline.tuesday = tuesday
  dataset.dateline = dateline 

我想要做的是使用把手来运行,我认为这可以使用 child 来完成。

  <script id="mwl707" type="text/x-handlebars-template">        
  {{#each dateline.children }}
    <span>{{food}} : {{drink}}</span>
  {{/each}}
  </script>

但我不能让它工作,有什么帮助吗? JSfiddle

4

2 回答 2

1

我更新了你的小提琴,所以它可以工作:http: //jsfiddle.net/AgCBb/1/

您不应该在[]括号中再次将您的对象包装在周一和周二,这是一个不必要的额外层次来解析。只需在您的父对象中创建一个 days 数组,因为数组在 Handlebars 中更容易解析。

dataset = {header: ' header' } //
dateline = { content: 'list of dates' } 
monday  =  { "food":"teacake" , "drink":"orange" }
tuesday = { "food":"eggs" , "drink":"beer" }

dateline.days = []
dateline.days.push(monday)
dateline.days.push(tuesday)

然后你可以像这样解析它:

{{#dateline.days }}
  <span>{{food}} : {{drink}}</span>
{{/dateline.days}}

还要确保将有效的 JSON 传递给模板。如果不确定,您可以使用http://jsonlint.com/检查您的 JSON

于 2013-03-17T16:09:37.913 回答
0

Handlebars 不提供迭代对象属性的内置方法。请参阅Handlebars/Mustache - 是否有内置的方法来循环遍历对象的属性?. 您可以改为以 Handlebars 支持的方式格式化数据,例如普通数组。我不会在这里复制代码,它在链接的帖子中。

此外,您不应该将<script>标签放在小提琴的 javascript 中。请改用该External Resources部分。

于 2013-03-17T15:57:05.457 回答