这些天工作我正在使用handlerbars.js,这似乎很有趣。在那里,我需要你们的小帮助。
我有一个以下的json输入
"ALERTS": [
{
"alert_description": "ALCOHOL",
},
{
"alert_description": "DIAGNOSIS",
}
]
我需要编写一个模板来创建以逗号分隔的字符串。
ALCOHOL, DIAGNOSIS
我能够使用以下模板逐行打印这些值。
<div>
<div>
{{#each this}}
<span>{{alert_description}}</span>
{{/each}}
</div>
</div>
你能帮助我解决这个问题吗?感谢您的帮助
由于 Keth
答案 0 :(得分:4)
您可以在不使用{{#each}}编写帮助程序并测试隐式@index变量的情况下执行此操作:
{{#each this}}
{{#if @index}}, {{/if}}
<span>{{alert_description}}</span>
{{/each}}
你也可以测试@first和@last(见handlebarsjs docs)。
答案 1 :(得分:2)
对于这种情况,我将创建一个帮助器。
这是我的实施
Handlebars.registerHelper('commalist', function(items, options) {
var out = '';
for(var i=0, l=items.length; i<l; i++) {
out = out + options.fn(items[i]) + (i!==(l-1) ? ",":"");
}
return out;
});
和模板
<div>
<div>
{{#commalist this}}
<span>{{alert_description}}</span>
{{/commalist}}
</div>
</div>
实际上,帮助程序仅用于逗号。您仍然可以将html放在帮助器(span,div,...)
中