变量未在包含的selmer模板中扩展

问题描述

我有一个顶层模板,我想在for循环内使用“片段”模板,但是我无法传递变量值:

  {% for item in coll %}
    {% include "fragment.html" with name="slack" item=item %}
  {% endfor %}
然后在fragment.html模板中使用

itemname

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

虽然name参数已正确展开(其值在父模板中进行了硬编码),但item参数却没有(其值按原样传递)。

我需要为此使用其他语法还是不支持

解决方法

include标签在随附的模板中进行拼接。这意味着父模板范围内的任何变量都可用于包含的模板。 with运算符使您可以提供未解释的默认值。说item=item实际上是说item|default:"item",也就是说item被重新定义为"item"

请参见https://github.com/yogthos/Selmer#including-templates

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...