2017-04-23 5 views
0

を継続するためにどのように、私はカウントを保持し、それもアイテムだ場合、私は私の出力がなりたい:何ELSE句がない場合、IFブロックを終了し、リストを反復しながらインデントレベルで

.row 
    .col-md-6 
    ...xxx... 
     ...yyy... 

それだけで次のようになりますの

.col-md-6 //note the indent is to be same as above, ie child of .row 
    ...xxx... 
     ...yyy... 

出力を繰り返すべきであるブロック:

<div class="row"> 
    <div class="col-md-6"> 
    .. 
    </div> 
    <div class="col-md-6"> 
    .. 
    </div> 
</div> 

は私の意図しますスクリプトは次のとおりです。

if even 
    .row 
end if //is there such a statement? 
    .col-md-6 
     ...xxx... 
     ...yyy... 

elseブロックに頼ると同様evenブロックで、その内容を繰り返すことなく、それを書くの適切な方法は何ですか?

+0

のように見えるあなたは私たちにあなたが反復処理されているものの例をお願いできますか?あなたがしようとしていることは(まさにあなたが試しているように)おそらくループが始まるたびに新しいインスタンスを作成し、以前のものと同じインデントレベルで作成することができないためです何かがあなたのために働く。 –

答えて

1

各ループで2つのアイテムをレンダリングできます。偶数の場合はレンダリングのみを実行できます。

for foo, i in bar 
    if i % 2 === 0 
     .row 
      .col-md-6 
       // whatever you want to do with foo 

      - var foo2 = bar[i+1] 
      if foo2 
       .col-md-6 
        // whatever you want to do with foo2 
+0

ありがとう、私のために働く。 '.col-md-6'の内容を繰り返す必要があり、私はmixinを使ってそれを処理します。トリックは、論理インデントとマークアップインデントを区別することです。 'if foo2' then節の出力は' if foo2'の 'i'の同じ位置に揃えられます。 –

0

ような何か問題だけでif文と同じレベルでインデントを再開し、ifの文から抜け出すために。これにより、コードはifのステートメントの後に進みます。

- var even = true; 
if even 
    .row 
.col-md-6 
    ...xxx... 
     ...yyy... 

が生成されますevenがfalseの場合

<div class="row"></row> 
<div class="col-md-6"> 
    <xxx> 
     <yyy></yyy> 
    </xxx> 
</div> 

<div class="row"></row>は出力から省略しますが、それの残りの部分は、まだ出力されます。

+0

ありがとうございますが、 '.col-md-6' divを' .row' divの子にしたいので、これは私のためには機能しません。 –

0

ジョー・リスナーの回答は正しいですが、コードの重複が含まれています。なぜなら、アイテムで何をしたいのかを1行に2回指定する必要があるからです。彼の答えは、行ごとに2つ以上のアイテムが必要な状況でもうまく拡張できません。

Joe Lissner'sの[i + 1]構造を使用する代わりに、2番目のループを使用してこの行に入るすべてのアイテムを見つけることをお勧めします。これは、次のパターンを使用して行うことができます。

- var itemsPerRow = 2; // This can be any positive number 
each unused, i in list 
    if (i % itemsPerRow == 0) 
    .row 
     each item, j in list 
     if (j - i >= 0 && j -i < itemsPerRow) 
      .col-md-6 
      .. What you want to do with -item- .. 

ラインif (j - i >= 0 && j -i < itemsPerRow)は、実際にその行に分類項目のみをレンダリングし得ることを確認します。

.. What you want to do with -item- ..を一度入力するだけで済むので、コードの重複を避けることができます。

結果は、この

.row 
    .col-md-6 
    .col-md-6 
.row 
    .col-md-6 
    .col-md-6 
.row 
    .col-md-6 
    .col-md-6 
関連する問題