如何遍历Go模板中的列表

时间:2014-08-09 14:21:58

标签: go

我有一个函数可以从数据库中检索一堆Tweets(类型为Tweet)并将它们传递给模板。在模板中,我必须遍历数组并打印从db检索到的每条推文的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}}

1 个答案:

答案 0 :(得分:4)

这里有两个错误。

  1. .Tweet来自哪里?您提供了模板引擎推文,[] *推文作为输入,因此.是一个切片,没有Tweet字段或密钥。

  2. .message未导出,只有导出的字段可用于模板。


  3. 最终结果:

    {{range .}}
        status: {{.Message}}
    {{end}}
    

    请记住修改您的推文类型以使用新的字段名称。