假设我有两个文本文件(去模板):child.tmplTEXT1 Hello {{ . }}顶部.tmplTEXT2{{ template "child.tmpl" "argument"}}该child.tmpl模板嵌套在top.tmpl解析它们的典型程序是:package mainimport ( "os" "text/template")func main() { t := template.Must(template.ParseFiles("child.tmpl", "top.tmpl") t.ExecuteTemplate(os.Stdout, "top.tmpl", nil)}是否有任何方法使用{{ . }}符号将要嵌入到顶级模板中的模板作为参数传递?就像是{{ template {{.}} "argument" }}更一般地说,定义布局模板的最佳方法是什么,以便我可以像使用多个子模板的顶级模板一样使用它?
1 回答
小唯快跑啊
TA贡献1863条经验 获得超2个赞
有两种公认的方法可以解决您的问题:
第一个涉及编写您自己的模板包含函数,并template.FuncMap
通过template.Funcs
.
另一种方法是{{define xxx}}
在子模板中使用块。然后你可以有两个不同的文件来定义相同的模板:
文件1.html:
{{define body}}...{{end}}
文件2.html:
{{define body}}...{{end}}
根据您的需要解析正确的文件,并在您的父模板中执行{{template body "argument"}}
.
在我看来,第一种选择更灵活。
- 1 回答
- 0 关注
- 189 浏览
添加回答
举报
0/150
提交
取消