【问题标题】:Twig / Grav modular get indexTwig / Grav 模块化获取索引
【发布时间】:2017-10-02 16:19:19
【问题描述】:

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

list.html.twig

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

service.html.twig

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

编辑

我还是想不通。是否可以根据当前模块按顺序出现的索引在其树枝模板中获取当前模块的索引?所以通信策略应该是索引 2 ... 或 1 如果 0 基数。

【问题讨论】:

  • 您如何以及在何处包含modular
  • 我正在遍历集合,该集合是属于该页面的模块列表
  • 所以你正在做类似{% for p in collection %}{% include "modular.html.twig" %}{% endfor %}的事情?如果是这种情况,那么 loop.indexmodular 中已经是已知的
  • 不,{{ p.content }} 引入了重力模块化组件
  • 我现在开始想,如果我像那样包含它,那么它必须已经被处理并且是一个纯字符串,所以也许我试图做的事情不能以这种方式完成。

标签: twig grav


【解决方案1】:

终于找到了解决办法。

您可以改为包含这样的模块

<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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-02
    • 2012-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多