我想在我的应用程序中添加一个块帮助器,它执行以下操作。在我的模板中,我希望能够写
{{#times n}}
<p>Some text</p>
{{/times}}
应该返回块内包含的代码n次(n应该是模板模型中的变量)。例如,当模板模型中的n为3时,输出应为
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
我读到在Ember中指定块助手是不可能的(还)。我的问题是否有某种解决方法?
亲切的问候, 的Marius
答案 0 :(得分:0)
我认为(未经测试)这就是您所需要的:
Handlebars.registerHelper('times', function(context, options) {
var result = "";
for(var i=0, j=context.length; i<j; i++) {
result = result + options.fn(this);
}
return result;
});
答案 1 :(得分:-1)
一个非常简单的解决方案是控制器中的计算属性......
times: function(){
var timesArray = [];
for(var i = 0, l = this.get('model.n'); i < l; i++){
timesArray[i]=i;
}
return timesArray;
}.property('model.n')
并使用正常的每个助手
{{#each controller.times}}
<p>Some text</p>
{{/each}