1 回答

TA貢獻(xiàn)1871條經(jīng)驗(yàn) 獲得超8個(gè)贊
您可以輕松實(shí)現(xiàn)自己的渲染器,如此處指南中所述,并使用 Go 自己的html/template
包來(lái)管理模板:
import (
"html/template"
// ...
)
type TemplateRenderer struct {
templates *template.Template
}
func (t *TemplateRenderer) Render(w io.Writer, name string, data interface{}, c echo.Context) error {
// Add global methods if data is a map
if viewContext, isMap := data.(map[string]interface{}); isMap {
viewContext["reverse"] = c.Echo().Reverse
}
return t.templates.ExecuteTemplate(w, name, data)
}
并讓模板訪問(wèn)自定義函數(shù),您可以使用如下Funcs方法:
renderer := &TemplateRenderer{
templates: template.Must(template.New("t").Funcs(template.FuncMap{
"AddTS": util.AddTS,
"Encrypt": util.EncryptGeneral,
"CombineVariable": util.CombineVariable,
}).ParseGlob("templates/*/*.tmpl")),
}
- 1 回答
- 0 關(guān)注
- 130 瀏覽
添加回答
舉報(bào)