在循环内使用 twig "loop.length" 然后在循环外使用它
Use twig "loop.length" inside a loop and then use it outside that loop
我尝试使用 Twig "loop.length" 在每个菜单项上实现一个菜单子项计数器。根据 twig 文档 here 如果我在循环之前声明它,我可以访问该变量:
<div id="menu">
<div class="list-group">
{% if menuItems %}
{% set items = menuItems %}
{% for item in items %}
<a href="#">{{ item.title }}</span>{{ subitem_counter }}</span></a>
{% if item.items %}
<div class="list-subgroup">
{% set subitem_counter = "" %}
{% for subitem in item.items %}
{% set subitem_counter = loop.length %}
<a href="#">{{ subitem.title }}</a>
{% endfor %}
</div>
{% endfor %}
{% endif %}
</div>
</div>
问题是,不知何故,在第一个菜单项上,我没有在 "subitem_counter" 上获得任何数据,在第二个菜单项上,我从第一个菜单子项获得计数数据,在第三个菜单项上,我从第二个菜单项获得计数数据菜单子项 e.t.c...
使用 length
twig filter:
<div id="menu">
<div class="list-group">
{% if menuItems %}
{% set items = menuItems %}
{% for item in items %}
<a href="#">{{ item.title }}</span>{{ item.items|length }}</span></a>
{% if item.items %}
<div class="list-subgroup">
{% for subitem in item.items %}
<a href="#">{{ subitem.title }}</a>
{% endfor %}
</div>
{% endfor %}
{% endif %}
</div>
</div>
在给变量赋值之前不能使用变量的值。
我尝试使用 Twig "loop.length" 在每个菜单项上实现一个菜单子项计数器。根据 twig 文档 here 如果我在循环之前声明它,我可以访问该变量:
<div id="menu">
<div class="list-group">
{% if menuItems %}
{% set items = menuItems %}
{% for item in items %}
<a href="#">{{ item.title }}</span>{{ subitem_counter }}</span></a>
{% if item.items %}
<div class="list-subgroup">
{% set subitem_counter = "" %}
{% for subitem in item.items %}
{% set subitem_counter = loop.length %}
<a href="#">{{ subitem.title }}</a>
{% endfor %}
</div>
{% endfor %}
{% endif %}
</div>
</div>
问题是,不知何故,在第一个菜单项上,我没有在 "subitem_counter" 上获得任何数据,在第二个菜单项上,我从第一个菜单子项获得计数数据,在第三个菜单项上,我从第二个菜单项获得计数数据菜单子项 e.t.c...
使用 length
twig filter:
<div id="menu">
<div class="list-group">
{% if menuItems %}
{% set items = menuItems %}
{% for item in items %}
<a href="#">{{ item.title }}</span>{{ item.items|length }}</span></a>
{% if item.items %}
<div class="list-subgroup">
{% for subitem in item.items %}
<a href="#">{{ subitem.title }}</a>
{% endfor %}
</div>
{% endfor %}
{% endif %}
</div>
</div>
在给变量赋值之前不能使用变量的值。