我有一个我想要把手处理的对象
stock= [
{
trailer: "TT6565",
usual : "Jack",
group : "Mercs"
},
{
trailer: "TT6589",
usual : "Paul",
group : "Mercs"
}
]
这是一个示例,但在我的脚本中,对象是从ajax请求创建的。
这是我的手柄脚本
<script id="mwl707" type="text/x-handlebars-template">
<div id='vehicles' class='wrapper'>
<div class='divd spacer'> </div>
{{#each stock}}
<div id='{{group}}' title='Driver Details' class='divd {{group}}' >
{{trailer}} + "<br>" + {{usual}}
</div>
{{/each}}
</div>
</script>
var source = $("#mwl707").html();
var template = Handlebars.compile(source);
$("#thisPage").append(template( stock ));
问题是迭代(每个)部分没有通过我的列表运行,我认为把手不喜欢对象,但有什么办法围绕这个?或者我的代码错了?有什么帮助吗?
答案 0 :(得分:5)
尝试:
{{#each this}}
<div id='{{group}}' title='Driver Details' class='divd {{group}}' >
{{trailer}} + "<br>" + {{usual}}
</div>
{{/each}}
请参阅我的示例:http://jsfiddle.net/svZws/
您使用{{#each this}}
的原因是因为您将stock
对象传递到模板中,因此在模板引擎的上下文中,this
引用您的stock
对象。
如果您使用{{#each stock}}
,则表示 stock 是您传递到template()
函数的对象内的属性名称。