Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk Mengakses Talian Paip Ibu Bapa/Global dalam Julat dalam Templat Go?
Apabila menggunakan saluran paip julat ({{jalur paip}} T1 {{ tamat}}) dalam pakej teks/templat, bolehkah nilai saluran paip luar boleh diakses sebelum tindakan julat atau semasa saluran paip induk/global diserahkan kepada Execute().
Dalam contoh berikut, kami cuba mengakses .Path dalam talian paip, tetapi .Path tidak tersedia kerana apabila titik itu berulang pada elemen Fail.
package main import ( "os" "text/template" ) // .Path won't be accessible, because dot will be changed to the Files element 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"}}) }
Menggunakan Pembolehubah $ (Disyorkan)
Menurut dokumentasi teks/templat, pada permulaan pelaksanaan, $ ditetapkan kepada argumen data yang diserahkan kepada Execute(), iaitu nilai permulaan daripada titik. Ini bermakna .Path skop luar boleh diakses menggunakan $.Path.
const page = `{{range .Files}}<script src="{{html $.Path}}/js/{{html .}}"></script>{{end}}`
Menggunakan Pembolehubah Tersuai (Penyelesaian Warisan)
Pendekatan lain ialah menggunakan pembolehubah tersuai untuk menghantar nilai ke dalam skop julat, seperti yang ditunjukkan di bawah:
const page = `{{$p := .Path}}{{range .Files}}<script src="{{html $p}}/js/{{html .}}"></script>{{end}}`
Atas ialah kandungan terperinci Bagaimana untuk Mengakses Talian Paip Ibu Bapa/Global dalam Julat dalam Templat Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!