使用handlebars.js的逗号分隔字符串

时间:2013-05-14 04:25:44

标签: handlebars.js

这些天工作我正在使用handlerbars.js,这似乎很有趣。在那里,我需要你们的小帮助。

我有一个以下的json输入

"ALERTS": [
    {
        "alert_description": "ALCOHOL",
    },
    {
        "alert_description": "DIAGNOSIS",
    }
]

我需要编写一个模板来创建以逗号分隔的字符串。

ALCOHOL, DIAGNOSIS

我能够使用以下模板逐行打印这些值。

<div>
   <div>
{{#each this}}
    <span>{{alert_description}}</span>
{{/each}}
</div>
</div>
你能帮助我解决这个问题吗?感谢您的帮助

由于 Keth

2 个答案:

答案 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,...)