4

要素の配列があり、それらすべてをフォーム要素に追加しています。すべて正常に動作します。しかし、3番目のラベルのそれぞれに「hr」要素を追加できません..これを試しました。

<script id="locale-template" type="text/x-handlebars-template">
        {{#each this}}
                {{#if @index % 3 === 0 }}
                    <hr/>
        {{/if}}
        <label><input type="checkbox" /> {{name}} </label>
        {{/each}}
    </script>

しかし、うまくいきません..誰かが私に正しい方法を提案できますか..?

前もって感謝します

4

1 に答える 1

10

最初の登録ヘルパーのようなshowHr

Handlebars.registerHelper("showHr", function(index_count,block) {

  if(parseInt(index_count)%3=== 0){
    return block.fn(this);}


});

テンプレートに追加

{{#showHr @index}}
    <hr/>
{{/showHr}}

または、必要に応じて、 http: //doginthehat.com.au/2012/02/comparison-block-helper-for-handlebars-templates/ を参照する汎用ヘルパーを作成できます。

コメント質問の編集

Handlebars.registerHelper("moduloIf", function(index_count,mod,block) {

  if(parseInt(index_count)%(mod)=== 0){
    return block.fn(this);}
});

0から始まるインデックスを考慮する

// If index is 0 open div
// if index is 3 means open a div
{{#moduloIf @index 0}}
 <div>
{{/moduloIf}}
{{#moduloIf @index 3}}
 <div>
{{/moduloIf}}

 {{name}}
 // if index+1 is  modulo 3 close div
 {{#moduloIf @index+1 3}}
 </div>
 {{/moduloIf}}
于 2013-06-17T14:01:23.440 に答える