我需要从字符串中取一个逗号列表,然后将每个元素转换为<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作为字符串返回。
答案 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>