Wie kann ich globale Variablen in Go-Vorlagen definieren und ändern?

Susan Sarandon
Freigeben: 2024-11-20 15:32:16
Original
828 Leute haben es durchsucht

How Can I Define and Modify Global Variables in Go Templates?

Go-Vorlagen verwenden: Globale Variablen erstellen und ändern

Go-Vorlagen bieten praktische Funktionen zum Erstellen wiederverwendbarer Codefragmente zum Generieren von dynamischem HTML. Eine häufige Herausforderung bei der Arbeit mit Vorlagen ist die Unfähigkeit, globale Variablen in verschiedenen Abschnitten der Vorlage zu definieren und zu ändern.

Das Problem: Globale Variablen mit begrenztem Geltungsbereich

Betrachten Sie die folgende HTML-Vorlage:

{{if .UserData}}
    {{$currentUserId := .UserData.UserId}}
    [<a href="#ask_question">Inside {{$currentUserId}}</a>]
{{else}}
    {{$currentUserId := 0}}
{{end}}
[<a href="#ask_question">outside {{$currentUserId}}</a>]
Nach dem Login kopieren

Innerhalb der if-Bedingung definiert die Vorlage eine lokale Variable $currentUserId mit einem Wert, der basierend auf dem UserData-Attribut zugewiesen wird. Der Gültigkeitsbereich dieser Variablen ist jedoch auf den if-Block beschränkt, während wir auch außerhalb Zugriff darauf wünschen.

Die Lösung: Variablen definieren und ändern

Um a zu definieren Wenn Sie eine globale Variable in einer Go-Vorlage erstellen möchten, verwenden Sie den Zuweisungsoperator :=.

{{$currentUserId := 0}}
Nach dem Login kopieren

Um den Wert einer Variablen zu ändern, verwenden Sie den Zuweisungsoperator =.

{{$currentUserId = .UserData.UserId}}
Nach dem Login kopieren

Durch Definieren der Variablen Außerhalb des if-Blocks, aber bei Änderung innerhalb des Blocks bleiben Änderungen an $currentUserId nach dem if-Block bestehen.

Zum Beispiel fügt der folgende Code vor und nach dem if-Block zusätzliche Logik hinzu:

{{$currentUserId := 0}}
Before: {{$currentUserId}}
{{if .UserData}}
    {{$currentUserId = .UserData.UserId}}
    [<a href="#ask_question">Inside {{$currentUserId}}</a>]
{{else}}
    {{$currentUserId = 0}}
{{end}}
After: {{$currentUserId}}
Nach dem Login kopieren

Jetzt wird die Variable $currentUserId für beide Fälle, in denen UserData vorhanden oder nicht vorhanden ist, korrekt aktualisiert und ist außerhalb des if-Blocks zugänglich.

Andere Ansätze

In Zusätzlich zur Verwendung globaler Variablen können Sie auch Folgendes in Betracht ziehen:

  • Benutzerdefinierte Funktionen: Durch die Registrierung benutzerdefinierter Funktionen können Sie spezifische Logik ausführen und auf Daten aus Ihren Vorlagen zugreifen.
  • Änderbare Variablen simulieren: Durch die Verwendung benutzerdefinierter Funktionen können Sie das Verhalten veränderlicher Variablen mithilfe eines Mechanismus wie einer Karte simulieren.

Das obige ist der detaillierte Inhalt vonWie kann ich globale Variablen in Go-Vorlagen definieren und ändern?. 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