我无法使用以下语法/步骤将自定义函数传递给 HTML 模板:t, err := template.ParseFiles("name.tpl")if err != nil { return}err = t.Funcs(template.FuncMap{"add": add}).Execute(w, nil)if err != nil { return}.........func add(a int8, b int8) int8 { return a + b}所需的功能是add,编译期间没有错误,但在尝试渲染 HTML 模板时出现错误function "add" not defined。我缺少什么?PS请不要提供其他解析模板的方法,诸如此类template.New...。我希望使用这个语法。
1 回答
慕丝7291255
TA贡献1859条经验 获得超6个赞
使用这个函数:
func parseFiles(funcs template.FuncMap, filenames ...string) (*template.Template, error) {
return template.New(filepath.Base(filenames[0])).Funcs(funcs).ParseFiles(filenames...)
}
像这样称呼它:
t, err := parseFiles(template.FuncMap{"add": add}, "name.tpl")
if err != nil {
return
}
err = t.Execute(w, nil)
在 Go Playground 上运行它。
- 1 回答
- 0 关注
- 111 浏览
添加回答
举报
0/150
提交
取消