使用带分隔符的模板在使用template.New("...").Delims("[[", "]]").Parse()
时工作正常
但是,我无法弄清楚如何使用template.ParseFiles()
tmpl, err := template.ParseFiles("base.tmpl", "homepage/inner.tmpl")
if err != nil { panic(err) }
tmpl.Delims("[[", "]]")
p := new(Page)
err = tmpl.Execute(os.Stdout, p)
if err != nil { panic(err) }
我没有错误,但分隔符没有改变。
tmpl, err := template.ParseFiles("base.tmpl", "homepage/inner.tmpl")
t := tmpl.Lookup("base.tmpl").Delims("[[", "]]")
p := new(Page)
err = t.Execute(os.Stdout, p)
if err != nil { panic(err) }
这导致相同的结果。
如果这是相关的,我需要在我网站的特定页面中嵌入一个小角度应用程序。
此外,我有一个基本模板,其中包含一个常见的HTML结构,我将其与一个特定于页面的模板与ParseFiles()结合在一起,从而导致了这种布局:
/templates/base.tmpl
/templates/homepage/inner.tmpl
/templates/otherpage/inner.tmpl
这有可能吗?如果是这样,我做错了什么?
答案 0 :(得分:6)
创建一个虚拟模板,设置分隔符,然后解析文件:
tmpl, err := template.New("").Delims("[[", "]]").ParseFiles("base.tmpl", "homepage/inner.tmpl")
API的这个方面很古怪,并不是很明显。在模板包具有额外的Set类型
的早期,API更有意义