Dalam templat Go, matlamatnya adalah untuk meniru perkara berikut:
{{$var := template "my-template"}}
Walau bagaimanapun, pendekatan ini mengakibatkan ralat " tidak dijangka dalam operan."
Go tidak menyediakan kaedah terbina untuk menangkap hasil pelaksanaan templat. Sebaliknya, daftarkan fungsi yang melaksanakan tugas ini.
Gunakan fungsi Template.Funcs() untuk mendaftar fungsi. Laksanakan templat bernama dengan Template.ExecuteTemplate() dan gunakan bait.Buffer sebagai sasaran untuk menangkap hasil pelaksanaan templat langsung ke dalam penimbal.
package main import ( "bytes" "html/template" "log" "os" ) var t *template.Template func execTempl(name string) (string, error) { buf := &bytes.Buffer{} err := t.ExecuteTemplate(buf, name, nil) return buf.String(), err } func main() { t = template.Must(template.New("").Funcs(template.FuncMap{ "execTempl": execTempl, }).Parse(tmpl)) if err := t.Execute(os.Stdout, nil); err != nil { log.Fatal(err) } } const tmpl = `{{define "my-template"}}my-template content{{end}} See result: {{$var := execTempl "my-template"}} {{$var}} `
Laksanakan templat "templat saya" menggunakan fungsi execTempl() berdaftar. Simpan hasil dalam pembolehubah templat $var, yang kemudiannya boleh ditambah pada output atau dihantar ke fungsi lain.
See result: my-template content
Perhatikan bahawa output menangkap hasil " templat my-template" dan memaparkannya dalam templat utama.
Atas ialah kandungan terperinci Bagaimana untuk Menangkap Output Templat Go dan Berikannya kepada Pembolehubah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!