HTML 模板中未定义的函数

我无法使用以下语法/步骤将自定义函数传递给 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...。我希望使用这个语法。


紫衣仙女
浏览 112回答 1
1回答

慕丝7291255

使用这个函数: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 上运行它。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go