Wie kann ich in Go auf den äußeren Bereich innerhalb verschachtelter Vorlagen zugreifen?

Mary-Kate Olsen
Freigeben: 2024-11-15 11:38:02
Original
654 Leute haben es durchsucht

How can I Access the Outer Scope within Nested Templates in Go?

Zugriff auf den äußeren Bereich innerhalb verschachtelter Vorlagen

Wenn Sie mit verschachtelten Vorlagen in Go arbeiten, können Sie innerhalb eines „mit“ oder „auf den äußeren Bereich zugreifen“ Bereich“ kann aufgrund des geänderten Gültigkeitsbereichs der Punktvariable (.) eine Herausforderung darstellen. Um dies zu beheben, kann die spezielle Variable $ verwendet werden, um auf den aufrufenden Bereich zuzugreifen.

Betrachten Sie das folgende Beispiel:

type MyData struct {
  OuterValue string
  InnerValue string
}

func main() {
  data := MyData{OuterValue: "Outer Value", InnerValue: "Inner Value"}
  template.Must(template.New("example").Parse("{{with .Inner}} Outer: {{$.OuterValue}}, Inner: {{.InnerValue}} {{end}}")).Execute(writer, data)
}
Nach dem Login kopieren

In diesem Beispiel ändert der „with“-Bereich den Bereich von die Punktvariable (.), um auf den „Inner“-Wert der MyData-Struktur zu verweisen. Wir müssen jedoch immer noch aus dem „with“-Bereich auf den „OuterValue“ zugreifen.

Um dies zu erreichen, verwenden wir die Variable $. $ stellt das Datenargument dar, das während der Ausführung an die Vorlage übergeben wird und mit dem Startwert der Punktvariable (.) identisch ist. Durch die Verwendung von $ können wir innerhalb des verschachtelten „with“- oder „range“-Bereichs auf den aufrufenden Bereich zugreifen.

Der folgende Code demonstriert die Verwendung von $:

$ is documented in the text/template docs:

> When execution begins, $ is set to the data argument passed to Execute, that is, to the starting value of dot.
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann ich in Go auf den äußeren Bereich innerhalb verschachtelter Vorlagen zugreifen?. 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