您可以在 go 内定义自定义函数并在模板中调用。
使用 template.FuncMap{ } 定义一个函数, 注意函数只能返回一个值,或者一个值 + 错误;然后通过 template.New() 将函数传递到模板调用。
package main
import (
"net/http"
"text/template"
)
func main() {
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
// 定义函数
say := template.FuncMap{"say": func(message string) string {
return "say : " + message
}}
t := template.New("index.html")
t.Funcs(say)
t, _ = t.ParseFiles("tmpls/index.html")
// 传入数据
err := t.Execute(w, "test..")
if err != nil {
println(err.Error())
}
})
http.ListenAndServe(":80", nil)
}
<!DOCTYPE html>
<html lang="en">
<head>
</head>
<body>
<div>hi...{{say .}}</div>
</body>
</html>
管道就是按顺序连接在一起的一串参数和方法。会把管道的输出传递给下一个管道。
语法 : {{ p1 | p2 | p3 }}
<div>{{1.12356 | printf "%.2f"}}</div>