2017-01-04 18 views
0

に従ってレンダリング私はこの考えに、似たような指数係数が0であるとき、行を開いて、それが1であるとき、それをクローズする必要があります。このコード/アイデアは」doesnのこと宇宙・天体バーインデックス

もちろん
{{each posts}} 
    {{#if @index%2==0}} 
     <div class="row"> 
    {{/if}} 
      <div class="col-lg-6">HELLO</div> 
    {{#if @index%2==1}} 
     </div> 
    {{/if}} 
{{/each}} 

tコンパイルします。どうすれば達成できますか?

更新日申し訳ありませんが、多分私はそれをうまく説明しませんでした。私がしたいことは、このPHPコードに似たものですが、流星を使用しています。 (理解を深めるためにいくつかの数字を変更しました)。

for($i = 0; $i<count(array); $i++): 
    if($i%4 == 0): 
     echo '<div class="row">'; 
    endif; 
     echo '<div class="col-lg-3">HELLO</div>'; 
    if($i%4==3 || $i == count(array) -1): 
     echo '</div>'; 
    endif; 
endfor; 

2次元配列を返すヘルパーを持つ1つのソリューションがあります。別の方法があります。

答えて

0

あなたはインデックスを取得し、あなたのロジックを行うためにヘルパーに渡すことができます。

{{#each posts}} 
    {{#if isEven @index}} 
     <div class="row"> 
    {{/if}} 
      <div class="col-lg-6">HELLO</div> 
    {{#if isOdd @index}} 
     </div> 
    {{/if}} 
{{/each}} 


Template.foo.helpers({ 
    isEven(index) { 
     return (index % 2 == 0); 
    }, 
    isOdd(index) { 
     return (index % 2 == 1); 
    } 
}); 

編集:ところで

、あなたのロジックはdivをアップ合わせるための間違っ見える場合。ブレイズは多分このようにそれをデ混同し、divタグのフォーマット方法によって混乱されている場合

{{#each posts}} 
    {{#if isEven @index}} 
     <div class="row"> 
    {{else}} 
     <div class="col-lg-6">HELLO 
    {{/if}} 
     </div> 
{{/each}} 

編集2:私はあなたがより多くのこのような何かを意味すると思います。それはあまりにも、読みやすいです:

{{#each posts}} 
    {{#if isEven @index}} 
     <div class="row"> 
     </div> 
    {{else}} 
     <div class="col-lg-6">HELLO 
     </div> 
    {{/if}} 
{{/each}} 
+0

このコードは同じ問題のためによく機能しません。 'else'ステートメントが始まると、コンパイラーはclosing divが一つもないことを示します。 –

+0

は読みやすく、別のアップデートを追加しました。 – zim

0

あなたはどんなの途中で要素を作成していないしたい場合は、私はこの

{{#each posts}} 
    <div class="{{#if isEven @index}}row{{/if}}"> 
     <div class="col-lg-6">HELLO</div> 
    </div> 
{{/each}} 

(@zimに似提案)isEvenような何かをするだろうインデックスを引数として取るテンプレートヘルパーになります

Template.hello.helpers({ 
    isEven(index) { 
     return index % 2 === 0; 
    } 
}); 
関連する問題