我需要帮助。
我需要在子文件中使用"html/template"
的标记({{.Title}}
,示例)(在我的文本中使用"article.html"
的示例):
// ...
type Page struct {
Test string
}
type News struct {
Page
Title string
}
func main() {
t, _ := template.ParseFiles(filepath+"core.tmpl", filepath+"article.tmpl")
p := &News{
Title: "TITLE",
Page: Page{
Test: "TITLE",
},
}
t.Execute(wr, p)
}
core.tmpl
中的代码:{{template "article"}}
article.tmpl
中的代码:{{define "article"}}
{{.Title}}<br><br>
{{.Page.Test}}
{{end}}
最佳答案
在core.tmpl
中,您必须使用
{{template "article" .}}
如果您未在最后指定
.
,则将使用nil
数据执行模板。指定.
会将.
的值传递给调用的模板。引用
text/template
软件包文档的Actions
部分:{{template "name"}}
The template with the specified name is executed with nil data.
{{template "name" pipeline}}
The template with the specified name is executed with dot set
to the value of the pipeline.
关于templates - tmpl.Execute和子文件golang,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28874194/