逗号列表的把手帮手

时间:2014-04-05 08:39:19

标签: ember.js helpers handlebars.js

我需要从字符串中取一个逗号列表,然后将每个元素转换为<li>项。

因此可以将red, blue, green之类的内容传递给车把助手并制作成:

<li>red</li> <li>green</li> <li>blue</li>

我试过了

`

Em.Handlebars.helper('decomma', function(value, opts){
  var newArray = value.split(',');
  var html = [];

  $.each(newArray, function(prop, value){
      html.push('<li>'+value+'</li>');
  })

 return html;
})

`

但是这只是将html作为字符串返回。

1 个答案:

答案 0 :(得分:0)

Ember.js guide on writing Handlebars helpers所述,如果您不返回SafeString,则Handlebars将逃避您的HTML。请改用它。

return new Handlebars.SafeString(html);

另外,只是我的两分钱,你可能最好使用计算属性。像这样:

Em.ObjectController.extend({
    value: 'red,blue,green',
    listItems: function() {
        return value.split(',');
    }).property(value)
});

然后,在您的模板中:

<ul>
    {{#each listItems}}
        <li>{{this}}</li>
    {{/each}}
</ul>