1

HTML のブロックを別の向きでレンダリングしたい。これは、サイクルの現在の値を取得するための正しい構文ですか?

{% if ( {{ cycle(['odd', 'even']) }} == 'odd' ) %}
foo
{% elseif %}
bar
{% endif %}
4

1 に答える 1

2
  1. cycle(['odd', 'even']) ステートメント内{{ }}に含めないでくださいif
  2. cycle()ループの量をカウントする 2 番目のパラメーターが必要です
  3. {% elseif %}条件を持つか、に変更する必要があります{% else %}

これは、コードを希望どおりに機能させるために行うべきことです (10 回ループします)。

{% for i in 0..9 %}
    {% if cycle(['odd', 'even'], i) == 'odd' %}
        foo
    {% else %}
        bar
    {% endif %}
{% endfor %}

for でオブジェクトをループさせたい場合は、loop.index代わりに (1 から開始) を使用できiます。

{% for object in objects %}
    {% if cycle(['even', 'odd'], loop.index) == 'odd' %}
        foo
    {% else %}
        bar
    {% endif %}
{% endfor %}

またはloop.index0(0 から開始):

{% for object in objects %}
    {% if cycle(['odd', 'even'], loop.index0) == 'odd' %}
        foo
    {% else %}
        bar
    {% endif %}
{% endfor %}
于 2012-11-29T18:54:06.633 に答える