问题描述
我试图弄清楚为什么这两种类型的循环配置会产生不同的输出。
第一个是简单的嵌套循环,在该循环中,我同时增加了外循环和内循环的索引。
{% set ind = 0 %}
{% for node in [1,2,3] %}
{% set ind = ind + 1 %}
<p>Test{{ ind }}</p>
{% for node in [1,3] %}
{% set ind = ind + 1 %}
<p>SubTest{{ ind }}</p>
{% endfor %}
{% endfor %}
此方案为每个节点增加一,而与它们的嵌套深度无关(如预期):
Test1
SubTest2
SubTest3
SubTest4
Test5
SubTest6
SubTest7
SubTest8
Test9
SubTest10
SubTest11
SubTest12
但是如果我使用include来引入这样的嵌套循环:
{# from index.twig #}
{% set ind = 0 %}
{% for node in [1,3] %}
{% set ind = ind + 1 %}
{% include 'test' %}
{% endfor %}
{# from test.twig #}
<p>Test{{ ind }}</p>
{% for node in [1,3] %}
{% set ind = ind + 1 %}
<p>SubTest{{ ind }}</p>
{% endfor %}
Test1
SubTest2
SubTest3
SubTest4
Test2
SubTest3
SubTest4
SubTest5
Test3
SubTest4
SubTest5
SubTest6
从我从输出中收集的信息来看,第一个循环一直持续到发生任何包含之前。这是可以理解的,但是令我惊讶的是,每个包含似乎都有自己的ind
版本,这会导致子测试中的增量编号不一致。
有人可以提出一种方法来安排第一个示例的输出,但又可以使用包含来保持嵌套循环的方法吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)