我有一个函数可以从数据库中检索一堆推文(Tweet 类型)并将它们传递给模板。在模板中,我必须遍历数组并为从数据库中检索到的每条推文打印 message
字段。下面的模板根本不显示任何内容。
如何指示我正在遍历 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)
}
main.html
{{range .Tweet}}
status: {{.message}}
{{end}}
最佳答案
这里有两个错误。
.Tweet
来自哪里?您为模板引擎 tweets 提供了一个 []*Tweet 作为输入,所以.
是一个 slice 并且没有Tweet
字段或键。.message
不导出,模板中只能使用导出的字段。
最终结果:
{{range .}}
status: {{.Message}}
{{end}}
记得修改你的推文类型以使用新的字段名称。
关于go - 如何遍历 Go 模板中的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25219510/