对于一个复杂的网格(标记为一个简单的单层loop.index
列表),for
循环中的for
出现了问题。我在小枝上有一个loop_index
变量,用于网格“单元格”( <li>
),它等于loop.index
。
最初,我对循环中的第一项进行了基于简单特定数字的检查。
{% set class = 'green' %}
{% if (loop_index > 1 and loop_index < 5) or (loop_index > 7 and loop_index < 12) %}
{% set class = 'orange' %}
{% endif %}
但是现在应该将其扩展到在循环中可能包含无限数量的项。因此,不仅项目2-4和8-11将成为orange
,还将成为15-18等.
基本上,我需要通过这样的方式循环两个类(橙色,绿色):
我试图雇佣batch
和cycle
,但他们似乎不适合这样做。batch
似乎不使用“无限”循环,而cycle
似乎不适合重复使用批相同项的模式(而不是循环遍历未分组的单个项)。在这种情况下,divisible by
也没有按需要为我工作。
如何根据loop.index
的值更改类?我不能在这里使用for
循环或它的外部--所有的工作都需要在网格“单元格”中完成。
发布于 2017-05-26 16:37:24
你可以检查一下分部的其他成员。这里有一个可行的解决方案:
{% for i in 1..30 %}
{% set class = 'green' %}
{% set loop_index = loop.index %}
{% if (loop_index %7 >= 1 and loop_index %7 < 5) %}
{% set class = 'orange' %}
{% endif %}
* {{ i }} {{class}}
{% endfor %}
这将产生如下结果:
* 5 green
* 6 green
* 7 green
* 8 orange
* 9 orange
* 10 orange
* 11 orange
* 12 green
* 13 green
* 14 green
* 15 orange
* 16 orange
* 17 orange
* 18 orange
* 19 green
* 20 green
* 21 green
* 22 orange
* 23 orange
* 24 orange
* 25 orange
* 26 green
* 27 green
您可以检查输出在这个工作的圈子里。
https://stackoverflow.com/questions/44204189
复制相似问题