2013-10-15 77 views
3

我想向我的應用程序添加一個塊幫助程序,該應用程序執行以下操作。在我的模板我希望能寫向Ember應用程序添加「times」塊幫助程序

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

應返回的代碼包含塊n倍內(正應該從模板的模型中的變量)。例如,當n是在模板的模型3,輸出應該是

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

我讀灰燼中指定塊助手是不可能的(尚未)。我的問題是否有某種解決方法?

親切的問候, 馬呂斯

回答

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

+1

作爲RC7的,灰燼不支持自定義塊助手。他們可能已經改變了RC8或1.0版本,但對於小版本來說,它似乎是一個相當大的變化。 – GJK