Zugriff auf die übergeordnete Pipeline innerhalb des Bereichs in Vorlagenaktionen
In Go-Vorlagen ist es üblich, Bereichspipelines zum Durchlaufen von Slices oder Karten zu verwenden. Allerdings tritt häufig ein Problem auf, wenn versucht wird, auf Daten außerhalb des unmittelbaren Bereichs der Pipeline zuzugreifen. In diesem Artikel wird erläutert, wie dies erreicht werden kann.
Verwendung der $-Variablen (empfohlen)
Die Text-/Vorlagendokumentation gibt an, dass die $-Variable bei Beginn der Ausführung auf die Daten verweist Argument, das an Execute übergeben wird. Dies bedeutet, dass wir mithilfe von $.variable auf die Daten des äußeren Bereichs zugreifen können.
Betrachten Sie beispielsweise diese Vorlage:
const page = `{{range .Files}}<script src="{{html $.Path}}/js/{{html .}}"></script>{{end}}`
Hier bezieht sich .Files auf einen Teil der Dateien, aber wir Sie möchten auf den Pfad der umschließenden scriptFiles-Struktur zugreifen. Die Verwendung von $.Path ermöglicht uns dies.
Verwendung einer benutzerdefinierten Variablen (Legacy-Methode)
Eine alternative Methode besteht darin, eine benutzerdefinierte Variable zu erstellen, die an den Bereichsbereich übergeben wird , wie in dieser Vorlage gezeigt:
const page = `{{$p := .Path}}{{range .Files}}<script src="{{html $p}}/js/{{html .}}"></script>{{end}}`
Indem wir $p vor der Range-Pipeline auf .Path setzen, können wir auf den Pfad innerhalb der zugreifen Pipeline.
Hinweis: Die $-Variablenmethode wird empfohlen, da sie in aktuellen Go-Versionen der prägnantere und idiomatischere Ansatz ist.
Das obige ist der detaillierte Inhalt vonWie greife ich in Go-Vorlagen auf Daten der übergeordneten Pipeline innerhalb des Bereichs zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!