Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Mengakses Talian Paip Induk/Global dalam Tindakan Julat Templat Go?

Bagaimana untuk Mengakses Talian Paip Induk/Global dalam Tindakan Julat Templat Go?

Barbara Streisand
Lepaskan: 2024-11-10 18:34:02
asal
214 orang telah melayarinya

How to Access the Parent/Global Pipeline in Go Templates' Range Action?

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"}})
}
Salin selepas log masuk

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}}`
Salin selepas log masuk

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}}`
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan