Twig 细枝/重力模块化获取索引

Twig 细枝/重力模块化获取索引,twig,grav,Twig,Grav,我可以从外部循环获取索引,或者以某种方式将其传递给内部模块吗 list.html.twig <ul> {% for module in page.collection %} <li> {{ module.content }} </li> {% endfor %} </ul> <h2>{{ loop.index }} </h2> {page.coll

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

list.html.twig

<ul>
    {% for module in page.collection %}
        <li>
            {{ module.content }}
        </li>
    {% endfor %}
</ul>
<h2>{{ loop.index }} </h2>
    {page.collection%中模块的%s}
  • {{module.content}
  • {%endfor%}
service.html.twig

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

编辑


我还是不明白。根据当前模块按顺序显示的索引,是否可以在其细枝模板中获取当前模块的索引?所以沟通策略应该是指标2。。。如果基数为0,则为1。

最终找到了解决方法

您可以包含这样的模块

<ul>
    {% for module in page.collection %}
        <li>
            {% include module.template ~ '.html.twig' with {page: module} %}
        </li>
    {% endfor %}
</ul>
    {page.collection%中模块的%s}
  • {%include module.template~'.html.twig'与{page:module}%}
  • {%endfor%}
这样做可能会对性能造成轻微影响,因为我相信您正在第二次渲染分部,但它可以让您完全访问外部范围

编辑

页面对象中实际上缺少此功能,因此我将其添加到中,并从v1.3.3开始使用


如何以及在何处包含
modular
?我正在循环集合,该集合是属于页面的模块列表,因此您正在执行类似于
{%p在集合%}{%include“modular.html.twig”%}{%endfor%}
?如果是这样的话,
loop.index
modular
nope中是已知的,{p.content}拉入grav modular组件,我现在开始想,如果我像那样包含它,那么它必须已经被处理过,并且是一个普通字符串,所以可能我试图做的事情不能这样做。