帶分隔符使用模板使用template.New("...").Delims("[[", "]]").Parse()
時,但是工作得很好,我無法弄清楚如何獲得相同的結果與template.ParseFiles()
Golang HTML /模板:自定義ParseFiles Delims
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
這是可能的呢?如果是這樣,我做錯了什麼?
的初期,API變得更有意義它看起來應該能夠執行'template.New(...).Deims(...).ParseFiles(。 ..)'從[文檔](http://golang.org/pkg/html/template/#Template.ParseFiles)。這是索引中的第二個ParseFiles,不是第一個。 – twotwotwo 2014-11-24 22:20:53
確實!儘管我已經研究了很長一段時間,但在發佈問題後我想了一會兒。我發現很難將這個包裹在頭上:)感謝您的幫助! – 2014-11-24 22:32:58
對於未來的讀者,我缺乏的另一個細節是我需要始終使用template.New(「base.tmpl」)爲任何頁面命名模板「base.tmpl」。我想這是因爲它是在解析模板集中使用的根模板的名稱。 – 2014-11-24 22:45:28