0

我尝试使用 Twig“loop.length”在每个菜单项上实现一个菜单子项计数器。根据twig docs 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”的数据,在第二个菜单项上我从第一个菜单子项中获取计数数据,在第三个菜单项上我从第二个菜单子项中获取计数数据等等。

4

1 回答 1

0

使用length 树枝过滤器

<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>

在为变量赋值之前,您不能使用变量的值。

于 2018-11-03T12:18:59.970 回答