Go中的Html呈现结构和数组

时间:2014-03-01 21:09:22

标签: go

我渲染模板:

w.Header().Set("Content-type", "text/html")
t, _ := template.ParseFiles("index.html")
t.Execute(w, &page{Title: "Title"})

效果很好。但是,例如,如果我有来自数据库的结构呢?

我怎样才能通过Go渲染它?任何解决方案?

2 个答案:

答案 0 :(得分:3)

它的作用没有区别。 ExecuteTemplate接受interface{},因此您可以将任何内容传递给您。

我通常会像map[string]interface{}一样传递:

// Shorthand
type M map[string]interface{}

...

err := t.ExecuteTemplate(w, "posts.tmpl", M{
        "posts": &posts,
        "user": &user,
        "errors": []pageErrors,
 }

 // posts.tmpl

 {{ posts.PostTitle }} 
 {{ with user }}
      Hello, {{ Name }}!
      {{ Email }}
 {{ end }}
 ...

希望澄清一下。 Go docs有一个有用的示例,其中包括如何使用html/template包。

答案 1 :(得分:2)