#json #handlebars.js
#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:
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 ;
});
Комментарии:
1. Большое спасибо. Работает отлично.