英文:
Golang template : Use pipe to uppercase string
问题
我想在golang模板中使用string.ToUpper
将字符串转换为大写,类似于:
{{ .Name | strings.ToUpper }}
但是这样不起作用,因为strings
不是我的数据的属性。
我不能导入strings
包,因为它会警告我说它没有被使用。
以下是脚本的链接:
http://play.golang.org/p/7D69Q57WcN
英文:
I want to upper case a string in a golang template using string.ToUpper
like :
{{ .Name | strings.ToUpper }}
But this doesn't works because strings
is not a property of my data.
I can't import strings
package because the warns me that it's not used.
Here the script :
http://play.golang.org/p/7D69Q57WcN
答案1
得分: 50
只需像这样使用FuncMap(playground)将ToUpper函数注入到您的模板中。
import (
"bytes"
"fmt"
"strings"
"text/template"
)
type TemplateData struct {
Name string
}
func main() {
funcMap := template.FuncMap{
"ToUpper": strings.ToUpper,
}
tmpl, _ := template.New("myTemplate").Funcs(funcMap).Parse(string("{{ .Name | ToUpper }}"))
templateData := TemplateData{"Hello"}
var result bytes.Buffer
tmpl.Execute(&result, templateData)
fmt.Println(result.String())
}
英文:
Just use a FuncMap like this (playground) to inject the ToUpper function into your template.
import (
"bytes"
"fmt"
"strings"
"text/template"
)
type TemplateData struct {
Name string
}
func main() {
funcMap := template.FuncMap{
"ToUpper": strings.ToUpper,
}
tmpl, _ := template.New("myTemplate").Funcs(funcMap).Parse(string("{{ .Name | ToUpper }}"))
templateDate := TemplateData{"Hello"}
var result bytes.Buffer
tmpl.Execute(&result, templateDate)
fmt.Println(result.String())
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论