我试图找出当我通过{{ .SomeVariable }}
在“html / template”模板中显示变量时调用的方法。
我正在使用“html / template”包。
我正在使用此功能渲染模板:
func renderTemplate(w http.ResponseWriter, tmpl string, p *Page) {
t, _ := template.ParseFiles("public/" + tmpl + ".html")
t.Execute(w, p)
}
带
type Page struct {
Title string
Users []*model.User
}
和示例模板
<html>
<head>
<title>Listing Users</title>
</head>
<body>
<h1>Listing users</h1>
{{range .Params}}
<h3>
id {{.Id }}
email {{.Email}}
name {{.Name}}
</h3>
{{end}}
</body>
</html>
我们以某种方式存储Id
并定义了.String()
方法来显示它。
当我们使用“text / template”包时,Id
属性会正确显示,但是当我们使用“html / template”时,它不会显示。我的猜测是前者在显示变量时调用.String()
而后者不是。我无法从文档中收集到什么方法。
这是我为Go撰写的第一个SO问题。希望明确表达,但随时可以要求提供更多信息,因为我是一个完整的Go noob。
感谢。