Mengakses Saluran Paip Ibu Bapa/Global dalam Tindakan Julat Templat Go
Dalam pakej teks/templat Go, keupayaan untuk mengakses saluran paip sebelum tindakan julat atau saluran paip induk/global adalah penting. Pertimbangkan contoh berikut:
const page = `{{range .Files}}<script src="{{html .Path}}/js/{{html .}}"></script>{{end}}` type scriptFiles struct { Path string Files []string } func main() { t := template.New("page") t = template.Must(t.Parse(page)) t.Execute(os.Stdout, &scriptFiles{"/var/www", []string{"go.js", "lang.js"}}) }
Dalam contoh ini, mengakses .Path tidak akan dapat dilakukan dalam julat tindakan kerana .dot bertukar kepada elemen Fail semasa.
Disyorkan Penyelesaian - Menggunakan Pembolehubah $
Menurut dokumentasi pakej teks/templat, pembolehubah $ memegang argumen data yang diserahkan kepada Laksanakan, iaitu nilai awal .dot. Oleh itu, untuk mengakses Laluan skop luar menggunakan $.Path dalam tindakan julat, gunakan variasi berikut:
const page = `{{range .Files}}<script src="{{html $.Path}}/js/{{html .}}"></script>{{end}}`
Penyelesaian Alternatif - Pembolehubah Tersuai
Sebelum tindakan julat, pembolehubah tersuai boleh ditakrifkan untuk menghantar nilai ke dalam skop julat. Contohnya:
const page = `{{$p := .Path}}{{range .Files}}<script src="{{html $p}}/js/{{html .}}"></script>{{end}}`
Atas ialah kandungan terperinci Bagaimana untuk Mengakses Talian Paip Induk/Global dalam Tindakan Julat Templat Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!