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

Bagaimana untuk Mengakses Talian Paip Ibu Bapa/Global dalam Julat dalam Templat Go?

Susan Sarandon
Lepaskan: 2024-11-12 08:18:02
asal
712 orang telah melayarinya

How to Access Parent/Global Pipeline within a Range in Go Templates?

Mengakses Saluran Paip Induk/Global dalam Templat Julat dalam Go

Masalah

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().

Contoh Berfungsi

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

Penyelesaian

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

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

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!

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