我有一个函数可以从数据库中检索一堆Tweet(类型为Tweet),并将它们传递给模板。在模板中,我必须遍历数组,并message为从数据库中检索到的每个tweet 打印字段。下面的模板完全不显示任何内容。
如何指示我正在遍历Tweet类型的数组,然后为每个消息打印消息?
func Root(w http.ResponseWriter, r *http.Request) {
tweets := []*Tweet{}
t := template.Must(template.New("main").ParseFiles("main.html"))
err := Orm.Find(&tweets)
if err != nil {
fmt.Println("err", err)
return
}
t.ExecuteTemplate(w, "main.html", tweets)
}
Run Code Online (Sandbox Code Playgroud)
main.html
{{range .Tweet}}
status: {{.message}}
{{end}}
Run Code Online (Sandbox Code Playgroud)
您在这里有两个错误。
哪里.Tweet来的?您给了模板引擎tweet,[] * Tweet作为输入,因此.是一个切片,没有Tweet字段或键。
.message 不导出,只能在模板中使用导出的字段。
最终结果:
{{range .}}
status: {{.Message}}
{{end}}
Run Code Online (Sandbox Code Playgroud)
切记修改您的Tweet类型以使用新的字段名称。