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