我有一个带有内部内容模板的模板,我想以内部内容周围有一个外部包装元素的方式呈现它,只有当内容不为空时才会显示。
例如:
...
{{if template-content-exists-and-not-blank}}
<div class="content">
{{template "content" .}}
</div>
{{end}}
...
我想渲染 <div>仅当 {{template "content" .}} 的结果时不是空的。我不想把封闭的 <div>进入内容,因为它实际上并不属于那里,并且它将在所有内容子模板中复制。
{{template ...}}作为函数参数,因此无法对其进行测试。我写了一个自定义 defined测试是否定义了子模板的 bool 函数,但是 content template不管是true还是false都会执行(不会短路),没有定义显然失败。
t.Funcs(
html.FuncMap{
"defined": func(name string) bool {
return t.Lookup(name) != nil
},
},
)
最佳答案
您需要做以下两件事之一:
关于go - html/模板 : optional outer element around sub-template if it's not empty,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44931422/