问题描述
我有一个顶层模板,我想在for循环内使用“片段”模板,但是我无法传递变量值:
{% for item in coll %}
{% include "fragment.html" with name="slack" item=item %}
{% endfor %}
然后在fragment.html模板中使用 item
和name
:
<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"
。