把手环绕内部物体

时间:2014-02-22 05:41:45

标签: javascript ember.js handlebars.js

我有一个对象的对象,如下所示:

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>

1 个答案:

答案 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>