将 Golang 模板输出捕获到变量中
在 Golang 模板中,尝试将另一个模板的输出直接捕获到变量中可能会导致在错误中。要实现此功能,必须注册一个自定义函数来捕获输出。
解决方案:
func execTempl(name string) (string, error) { buf := &bytes.Buffer{} err := t.ExecuteTemplate(buf, name, nil) return buf.String(), err }
t := template.Must(template.New("").Funcs(template.FuncMap{ "execTempl": execTempl, }).Parse(tmpl))
{{$var := execTempl "my-template"}}
示例模板:
const tmpl = `{{define "my-template"}}my-template content{{end}} See result: {{$var := execTempl "my-template"}} {{$var}} `
输出:
See result: my-template content
此方法允许您执行命名模板并将其输出存储在模板变量中。然后,您可以使用此变量传递给其他函数或包含在模板输出中。
以上是如何将 Golang 模板输出捕获到变量中?的详细内容。更多信息请关注PHP中文网其他相关文章!