Wie greife ich in der Bereichsaktion von Go-Vorlagen auf die übergeordnete/globale Pipeline zu?

Barbara Streisand
Freigeben: 2024-11-10 18:34:02
Original
165 Leute haben es durchsucht

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

Auf übergeordnete/globale Pipeline in der Bereichsaktion von Go-Vorlagen zugreifen

Im Text-/Vorlagenpaket von Go ist die Möglichkeit, auf Pipelines vor a zuzugreifen Bereichsaktion oder die übergeordnete/globale Pipeline ist unerlässlich. Betrachten Sie das folgende Beispiel:

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"}})
}
Nach dem Login kopieren

In diesem Beispiel ist der Zugriff auf .Path innerhalb der Bereichsaktion nicht möglich, da .dot in das aktuelle Dateielement umgewandelt wird.

Empfohlen Lösung – Verwendung der $-Variable

Laut der Dokumentation des Text-/Vorlagenpakets enthält die $-Variable das übergebene Datenargument Execute, das ist der Anfangswert von .dot. Um also mithilfe von $.Path in der Bereichsaktion auf den Pfad des äußeren Bereichs zuzugreifen, verwenden Sie die folgende Variante:

const page = `{{range .Files}}<script src="{{html $.Path}}/js/{{html .}}"></script>{{end}}`
Nach dem Login kopieren

Alternative Lösung – Benutzerdefinierte Variable

Vorher Für die Bereichsaktion kann eine benutzerdefinierte Variable definiert werden, um einen Wert an den Bereichsbereich zu übergeben. Zum Beispiel:

const page = `{{$p := .Path}}{{range .Files}}<script src="{{html $p}}/js/{{html .}}"></script>{{end}}`
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie greife ich in der Bereichsaktion von Go-Vorlagen auf die übergeordnete/globale Pipeline zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage