背景说明
html/template 它是 Go 官方维护的,但是在初次接触的时候,缺乏文档指南,看了很多零碎的相关资料,大概知道了 { { . }} 的用法,翻看 官方DOC ...没办法立马给到我想要的答案:如何模版复用、循环渲染(慢慢研究可能会得到答案)... 所以本篇文章的是关于模版复用的实现尝试.要获取更详细的用法,可以看这篇文章go html模板的使用
模版复用
1 在模版内,使用 { { define "名称" }} 内容 { { end }} 定义模版,如:
{ { define "header" }}
定义头{ { end }}
{ { define "footer" }}
{ { end }}
2 再需要引用的模版内,使用 { { template "名称" . }},引用模版,注意 . 别漏了,如:
{ { template "header" . }}
Hello world
{ { template "footer" . }}
以上就是模版复用的方法,实际在官方文档有相关介绍,但它只介绍了轮子,没告诉我们轮子使用范围:
import "html/template"
...
t, err := template.New("foo").Parse(`{ {define "T"}}Hello, { {.}}!{ {end}}`)
err = t.ExecuteTemplate(out, "T", "")