给定一组模板,例如:
布局.tpl
Some title{{template extracss}}
Page title
{{template content .}}
主页.tpl
{{define "content"}}
page content goes here
{{end}}
编辑.tpl
{{define "content"}}
form content goes here{{end}}
{{define "extracss"}}{{end}}
使用它来呈现模板:
func Render(w http.ResponseWriter, tmpname string, data interface{}) {
t, err := template.ParseFiles("views/layout.tpl", "views/"+tmpname+".tpl")
// parse error
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
}
if err := t.Execute(w, data); err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
}
}
edit.tpl 将正确呈现,因为它定义了“extracss”,home.tpl 不会因为模板解析器正确地说“没有这样的模板“extracss””。
那么我将使用什么机制来允许使用“可选”模板?
有任何想法吗?