当我在golang html模板中显示变量时调用什么方法

时间:2015-10-23 19:44:49

标签: html templates go escaping

我试图找出当我通过{{ .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 }}
        &nbsp;
        email {{.Email}}
        &nbsp;
         name {{.Name}}
      </h3>
    {{end}}

  </body>
</html>

我们以某种方式存储Id并定义了.String()方法来显示它。

当我们使用“text / template”包时,Id属性会正确显示,但是当我们使用“html / template”时,它不会显示。我的猜测是前者在显示变量时调用.String()而后者不是。我无法从文档中收集到什么方法。

这是我为Go撰写的第一个SO问题。希望明确表达,但随时可以要求提供更多信息,因为我是一个完整的Go noob。

感谢。

0 个答案:

没有答案