我有一个带有内部内容模板的模板,我希望以内部内容周围有一个外包装元素的方式呈现它,只有在内容不为空时才显示。
例如:
...
{{if template-content-exists-and-not-blank}}
<div class="content">
{{template "content" .}}
</div>
{{end}}
...
我想仅在<div>
的结果不为空时呈现{{template "content" .}}
。我不想将封闭的<div>
放入内容中,因为它并不真正属于那里,并且它将在所有内容子模板中重复。
{{template ...}}
用作函数参数,因此无法对其进行测试。我编写了一个自定义defined
布尔函数,用于测试是否定义了子模板,但是content
模板是执行的,无论它是真还是假(没有短路) ,如果没有定义,显然会失败。
t.Funcs(
html.FuncMap{
"defined": func(name string) bool {
return t.Lookup(name) != nil
},
},
)
答案 0 :(得分:0)
您需要做以下两件事之一: