我有一个对象的对象,如下所示:
Cards : [{
Object1 :['id':'3532']
Object2 :['id':'1456']
Object3 :['id':'1345']
}]
我正在尝试handlebars.js我尝试了不同的模板选项,但都没有。
{{#Cards}}
{{#each this}}
object name: {{this}} Key: {{@key}} Value = {{this}}
{{/each}}
{{/Cards}}
如何在html中输出以下代码段,以便循环遍历整个Cards对象并显示类似
的内容<li>object name: object1: Key: id, value: 3532 </li>
<li>object name: object2: Key: id, value: 1456</li>
答案 0 :(得分:1)
http://jsfiddle.net/CoryDanielson/r7unb/
从评论中,我认为您的数据结构如下:
var data = {
Cards: {
Object1: ['id','3532'],
Object2: ['id','1456'],
Object3: ['id','1345']
}
};
考虑到这组数据,您需要注册一个帮助程序,以便随意打印数组的项目。 (我没有在Handlebars docs上找到这样的方法)。那个助手看起来像这样:
Handlebars.registerHelper('printIndex', function printIndex(index, arr) {
index = parseInt(index);
if ( index >= 0 && arr.length > index ) {
var r = arr[index];
} else {
throw new Error("printIndex helper: Array out of bounds. printIndex received " + index + ", array length is " + arr.length);
}
return r;
});
现在有了这个助手,您可以使用以下模板打印数据:
<ul>
{{#each Cards}}
<li>object name: {{@key}} Key: {{printIndex 0 this}} Value = {{printIndex 1 this}}</li>
{{/each}}
</ul>