如何解决树枝:使用include时循环迭代模式的变化?
我试图弄清楚为什么这两种类型的循环配置会产生不同的输出。
第一个是简单的嵌套循环,在该循环中,我同时增加了外循环和内循环的索引。
{% 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 举报,一经查实,本站将立刻删除。