我有一个带有内部内容模板的模板,我想以内部内容周围有一个外部包装元素的方式呈现它,只有当内容不为空时才会显示。
例如:
...
{{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/