Передача массива объектов в партиал - handlebars.js
Я пытаюсь передать массив объектов в частное в качестве аргумента:
{{> partial [{title: "hello", year: "2015"}, {title: "hello2" year: "2015"}] }}
а затем по частям:
<div>
{{#each this}}
<label>{{title}}</label>
<label>{{year}}</label>
{{/each}}
</div>
... но ничего не появляется.
Есть ли способ передать данные массива в частичное? Заранее спасибо.
1 ответ
Создайте помощник, который анализирует JSON и оберните ваш партиал этим контекстом.
Шаблон:
{{#getJsonContext '[{"title": "hello", "year": "2015"}, {"title": "hello2" "year": "2015"}]'}}
{{> partial this }}
{{/getJsonContext}}
Обратите внимание, что имена указаны в кавычках, а также значения в строке JSON.
Helper:
Handlebars.registerHelper('getJsonContext', function(data, options) {
return options.fn(JSON.parse(data));
});
Это должно работать
{{> partial items=this.something }}
в
Handlebars.registerPartial(
'partial',
"<div>{{#each items}}<label>{{title}}</label><label>{{year}}</label>{{/each}}</div>"
);
ввод:
{
something: [{title: "hello", year: "2015"}, {title: "hello2", year: "2015"}]
}
Кроме того, проблема в объекте JSON.