试图传递一个json数组到一个helper函数,然后迭代它



我是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 is undefined错误。

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

我相信这很简单,但我就是不知道我错过了什么。谢谢。

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 ;
});

最新更新