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>]
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}}
Um den Wert einer Variablen zu ändern, verwenden Sie den Zuweisungsoperator =.
{{$currentUserId = .UserData.UserId}}
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}}
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:
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!