Переменная не раскрывается во включенном шаблоне selmer

У меня есть шаблон верхнего уровня, в котором я хочу использовать шаблон "фрагмент" внутри цикла for, но я не могу передать значение переменной:

  {% for item in coll %}
    {% include "fragment.html" with name="slack" item=item %}
  {% endfor %}

item и name затем используется в шаблоне fragment.html:

<div>
  <label>
    <input
      title="{{item.id}}"
      id="{{name}_{{item.id}}_active"
      name="{{name}}-{{item.id}}_active"
...
    />

В то время как name правильно развернут (его значение жестко задано в родительском шаблоне), item параметр не является (его значение передается как есть).

Нужно ли мне использовать для этого другой синтаксис или он просто не поддерживается?

1 ответ

В includeтеги стыков в прилагаемом шаблоне. Это означает, что любые переменные в рамках родительского шаблона будут доступны для включенного шаблона. В withОператор позволяет указать значения по умолчанию, которые не интерпретируются. Говоря item=item эффективно говорит item|default:"item", то есть item переопределяется как "item".

См. https://github.com/yogthos/Selmer#including-templates

Другие вопросы по тегам