2013-05-19 21 views
1

我正在嘗試創建一個Handlebars.registerHelper(),它將爲我輸入的每個數字在{{每個項目}}中包裹我的{{>模板}}。Handlebars and MeteorJs for each other or number

所以像這樣的東西;

{{forevery items 4}} 
    {{> item_row_template}} 
{{/forevery}} 

想要的結果是每隔4個項目將它圍繞在一個div上。

<div class="row"> 
    <div class="item_1">item</div> 
    <div class="item_2">item</div> 
    <div class="item_3">item</div> 
    <div class="item_4">item</div> 
</div> 

<div class="row"> 
    <div class="item_1">item</div> 
    <div class="item_2">item</div> 
    <div class="item_3">item</div> 
    <div class="item_4">item</div> 
</div> 

等等

回答

2

你想要做的是創造一個幫手,將遍歷列表,手動每隔一段時間追加的div。

下面是一個例子:通過項目的陣列,每第n行,將關閉一個div並打開一個新的

Handlebars.registerHelper('forevery', function(context, limit, options) { 
    var ret = ""; 
    if (context.length > 0) { 
     ret += "<div>"; 
     for(var i=0, j=context.length; i<j; i++) { 
      ret = ret + options.fn(context[i]); 
      if ((i+1) % limit === 0) { 
       ret += "</div><div>"; 
      } 
     } 
     ret += "</div>"; 
    } 
    return ret; 
}); 

此功能將循環。因此,這將被稱爲像:

{{#forevery items 3}} 
    {{> item_row_template}} 
{{/forevery}} 

希望這有助於:)