树枝:使用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 (将#修改为@)