【发布时间】:2017-03-12 11:57:17
【问题描述】:
下一个代码非常适合在 HomeTemplate 中输出一个切片。
main.go
type Item struct {
Id int
Name string
Type string
}
var tmpl = template.Must(template.ParseGlob("tmpl/*"))
func Index(w http.ResponseWriter, r *http.Request) {
db := database.DbConn()
selDB, err := product.ByID()
if err != nil {
panic(err.Error())
}
i := Item{}
resItems := []Item{}
for selDB.Next() {
var id int
var product_name, product_type string
err = selDB.Scan(&id, &product_name, &product_type)
if err != nil {
panic(err.Error())
}
i.Id = id
i.Name = product_name
i.Type = product_type
resItems = append(resItems, i)
}
tmpl.ExecuteTemplate(w, "HomeTemplate", resItems)
// Close database connection
defer db.Close()
}
在模板中fork好下一段代码:
{{ range . }}
{{ .Name }}<br />
{{ end }}
为什么这样的东西不起作用?
{{ range .resItems }}
{{ .Name }}<br />
{{ end }}
如果我想输出两个或更多切片,我需要做什么或改变什么?
谢谢
【问题讨论】:
-
如果我想输出两个或多个切片,我需要做什么或改变什么? 你需要传递一个数据结构给
ExecuteTemplate,它可以包含多个切片数据,例如结构。