handlebars.js尝试将json数组传递给辅助函数,然后将其更新

时间:2014-06-28 03:09:16

标签: json handlebars.js

我是Handlebars.js的新手,我有一个json对象,其中包含一个包含更多对象的子数组。 我已经找到了如何使用以下语法访问网页中的数据{{{V.0.D}}} V是子数组的名称,0是这个迭代,D是该特定的属性子阵列。

我遇到了麻烦,无论如何将V数组传递给帮助器并弄清楚如何迭代这个数组,以便我可以从其中一个子对象返回数据。

到目前为止,这是我的助手:

Handlebars.registerHelper('getRegion', function (descData) {
    for (desc in descData) {
        console.log('descData.D:' + desc.D);
    }

    return something;

});

这是我的来电者:

{{getRegion V}}

我一直得到一个desc.D是未定义的错误。

我认为我不需要块助手,因为我不需要列出所有子对象。

我确信这很简单,但我无法弄清楚我错过了什么。感谢。

1 个答案:

答案 0 :(得分:0)

应该使用

for in来循环对象的可枚举属性。以下是MDN的参考资料。

您的助手应修改为

Handlebars.registerHelper('getRegion', function (descData) {
    for (index in descData) {
        console.log('descData.D:' + descData[index].D);
    }

    return something;

});

这是使用数组forEach

的助手
Handlebars.registerHelper('getRegion', function (descData) {
    var str = '';
    descData.forEach(function(desc) {
        console.log('descData.D:' + desc.D);
        str += ' '+ desc.D;
    });

    return str ;

});