为了账号安全,请及时绑定邮箱和手机立即绑定

定义顶级 go 模板

定义顶级 go 模板

Go
人到中年有点甜 2021-06-18 02:29:40
假设我有两个文本文件(去模板):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"}}.

在我看来,第一种选择更灵活。


查看完整回答
反对 回复 2021-06-28
  • 1 回答
  • 0 关注
  • 189 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信