首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >针对Twig中从x到y的第n个指数

针对Twig中从x到y的第n个指数
EN

Stack Overflow用户
提问于 2017-05-26 14:33:21
回答 1查看 561关注 0票数 1

对于一个复杂的网格(标记为一个简单的单层loop.index列表),for循环中的for出现了问题。我在小枝上有一个loop_index变量,用于网格“单元格”( <li>),它等于loop.index

最初,我对循环中的第一项进行了基于简单特定数字的检查。

代码语言:javascript
运行
复制
{% 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等.

基本上,我需要通过这样的方式循环两个类(橙色,绿色):

  • 2-4 -橙色
  • (重复模式从这里开始:)
  • 5-7 -绿色(3批)
  • 8-11 -橙色(4批)
  • 12-14 -绿色(3批)
  • 15-18 -橙色(4批)
  • 19-21 -绿色(3批)
  • 22-25 -橙色(4批)
  • ..。

我试图雇佣batchcycle,但他们似乎不适合这样做。batch似乎不使用“无限”循环,而cycle似乎不适合重复使用批相同项的模式(而不是循环遍历未分组的单个项)。在这种情况下,divisible by也没有按需要为我工作。

如何根据loop.index的值更改类?我不能在这里使用for循环或它的外部--所有的工作都需要在网格“单元格”中完成。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-26 16:37:24

你可以检查一下分部的其他成员。这里有一个可行的解决方案:

代码语言:javascript
运行
复制
{% 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 %}

这将产生如下结果:

代码语言:javascript
运行
复制
* 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

您可以检查输出在这个工作的圈子里

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44204189

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档