我知道如何从*http.Request
结构中获取用户IP:
strings.Split(r.RemoteAddr, ":")[0]
我知道如何定义template.FuncMap
:
funcMap = template.FuncMap{
// gets the time since the post was posted
"since": func(t time.Time) string {
s := time.Since(t).String()
return strings.Replace(s[:strings.LastIndex(s, "m")+1], "h", "h ", 1)
},
}
如何从template.FuncMap
?
答案 0 :(得分:2)
func map用于辅助函数而不是数据,应该在解析模板之前定义一次,因此这不是一个好的地方。您应该在执行模板时将数据传递给视图。
这样可以更好地适应视图的数据/上下文。例如,如果你使用map [string] interface {}(我使用interface {}的几个地方之一),你可以简单地在那里分配它:
userIP := strings.Split(r.RemoteAddr, ":")[0]
data := map[string]interface{}{"userIP":userIP}
err := tmpl.Execute(w,data)
模板:
<p>User IP:{{.userIP}}</p>