Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Lulus Fungsi untuk Pergi Templat?
Templat Golang: Menghantar Fungsi ke Templat
Masalah:
Apabila cuba melepasi fungsi kepada templat, ralat berikut ialah dihadapi:
Error: template: struct.tpl:3: function "makeGoName" not defined
Penyelesaian:
Untuk menyelesaikan ralat ini, fungsi tersuai mesti didaftarkan sebelum menghuraikan templat. Templat direka bentuk untuk analisis statik, yang memerlukan penghurai dapat membezakan nama fungsi yang sah daripada pengecam lain.
Daripada menggunakan templat.ParseFiles(), gunakan kaedah Template.ParseFiles(), yang tersedia selepas templat panggilan.Baru(). Kaedah ini mendaftarkan fungsi sebelum menghuraikan templat.
Kod Diperbaiki:
t, err := template.New("struct.tpl").Funcs(template.FuncMap{ "makeGoName": makeGoName, "makeDBName": makeDBName, }).ParseFiles("templates/struct.tpl")
Selain itu, kaedah Template.Execute() mengembalikan ralat. Untuk memerhatikan sebarang isu yang berpotensi dengan penjanaan output, kendalikan ralat ini:
if err := t.Execute(os.Stdout, data); err != nil { fmt.Println(err) }
Atas ialah kandungan terperinci Bagaimana untuk Lulus Fungsi untuk Pergi Templat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!