gpt4 book ai didi

去模板函数

转载 作者:IT老高 更新时间:2023-10-28 13:00:50 25 4
gpt4 key购买 nike

当我尝试使用 FuncsFuncMap 时,它注意到 Go 模板有一个奇怪的地方。以下代码按预期工作:

buffer := bytes.NewBufferString("")

funcMap := template.FuncMap{
"label": strings.Title,
}

t, _ := template.New("alex").Funcs(funcMap).Parse("{{label \"alex\"}}")

t.Execute(buffer, "")

return string(buffer.Bytes()) //=> "Alex"

但是当我尝试将模板放入文件时,它不起作用(Execute() 说:“alex”是一个不完整或空的模板):

t, _ := template.New("alex").Funcs(funcMap).ParseFiles("template.html") 

带有模板.html:

{{label \"alex\"}}

知道为什么吗?这是一个错误吗?有没有更简单的方法在模板中使用方法/函数?

最佳答案

ParseFiles 可能会使用更好的文档。一个模板对象中可以有多个模板,每个模板都有一个名称。如果您查看 ParseFiles 的实现,您会发现它使用 filename 作为模板对象内部的模板名称。因此,将您的文件命名为与模板对象相同的名称(可能通常不实用),或者使用 ExecuteTemplate 而不是 Execute。

关于去模板函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10199219/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com