3

我想在我的应用程序中添加一个块助手,它执行以下操作。在我的模板中,我希望能够编写

{{#times n}}
<p>Some text</p>
{{/times}}

它应该返回包含在块内的代码 n 次(n 应该是模板模型中的变量)。例如,当模板模型中的 n 为 3 时,输出应为

<p>Some text</p>
<p>Some text</p>
<p>Some text</p>

我读到在 Ember 中指定块助手是不可能的(还)。我的问题有什么解决方法吗?

亲切的问候,马吕斯

4

2 回答 2

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;
});

通读: http ://handlebarsjs.com/block_helpers.html

于 2013-10-15T11:07:54.040 回答
-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 助手

{{#each controller.times}}
    <p>Some text</p>
{{/each}
于 2013-10-15T10:31:08.757 回答