我想在我的应用程序中添加一个块助手,它执行以下操作。在我的模板中,我希望能够编写
{{#times n}}
<p>Some text</p>
{{/times}}
它应该返回包含在块内的代码 n 次(n 应该是模板模型中的变量)。例如,当模板模型中的 n 为 3 时,输出应为
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
我读到在 Ember 中指定块助手是不可能的(还)。我的问题有什么解决方法吗?
亲切的问候,马吕斯
我想在我的应用程序中添加一个块助手,它执行以下操作。在我的模板中,我希望能够编写
{{#times n}}
<p>Some text</p>
{{/times}}
它应该返回包含在块内的代码 n 次(n 应该是模板模型中的变量)。例如,当模板模型中的 n 为 3 时,输出应为
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>
我读到在 Ember 中指定块助手是不可能的(还)。我的问题有什么解决方法吗?
亲切的问候,马吕斯
我认为(未经测试)这是你需要的:
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;
});
一个非常简单的解决方案是控制器中的计算属性......
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 助手
{{#each controller.times}}
<p>Some text</p>
{{/each}