使用loop.index作为模板名称的一部分以包含Twig?

时间:2016-07-27 16:51:26

标签: twig

我有一个包含3个项目的数组,所以在下面我将包括sub-component.twig 3次:

{% for i in array %}
  <div class="my-class">
    {% include "sub-component.twig" %}
  </div>
{% endfor %}

但实际上我有3个略有不同的模板,我想为数组上的每次迭代加载一个不同的模板:

sub-component-1.twig  
sub-component-2.twig  
sub-component-3.twig    

当我在模板中打印loop.index时,结果为“1”,“2”和“3”。因此,我可以使用索引来形成模板名称吗?

{% for i in array %}
  <div class="my-class">
    {{ loop.index }}
    {% include ["sub-component-" ~ loop.index ~ ".twig"] %}
  </div>

1 个答案:

答案 0 :(得分:0)

可能是因为我使用了gulp twig,我不得不将事情分解为变量才能实现。

https://github.com/zimmen/gulp-twig

{% for i in array %}
  <div class="my-class">

    {% set sub-component_1 = "sub-component-" %}

    {% set sub-component_2 = loop.index %}

    {% set sub-component_3 = ".twig" %}

    {% set sub-component_full = sub-component_1 ~ sub-component_2 ~ sub-component_3 %}

    {% include sub-component_full %}

  </div>
{% endfor %}