2

我可以从外部循环获取索引或以某种方式将其传递给内部模块吗?

list.html.twig

<ul>
    {% for module in page.collection %}
        <li>
            {{ module.content }}
        </li>
    {% endfor %}
</ul>

service.html.twig

<h2>{{ loop.index }} </h2>

在此处输入图像描述

编辑

我仍然无法弄清楚这一点。是否可以根据当前模块按顺序出现的索引在其树枝模板中获取当前模块的索引?因此,通信策略应该是索引 2 ...如果为 0,则为 1。

4

1 回答 1

3

终于想出了一个解决办法。

您可以包含这样的模块

<ul>
    {% for module in page.collection %}
        <li>
            {% include module.template ~ '.html.twig' with {page: module} %}
        </li>
    {% endfor %}
</ul>

这样做可能会对性能造成轻微影响,因为我相信您正在第二次渲染部分,但它使您可以完全访问外部范围。

编辑

页面对象实际上缺少此功能,因此我将其添加进去,它可以从 v1.3.3 开始使用

https://learn.getgrav.org/themes/theme-vars#currentposition

于 2017-09-01T13:54:56.793 回答