Globale Variablen in Go HTML/Template verwalten
Beim Erstellen von Variablen in Go HTML/Template ist ihr Umfang normalerweise auf den bedingten Block beschränkt in dem sie definiert sind. Um dies zu überwinden und Variablen über mehrere Abschnitte einer Vorlage hinweg gemeinsam zu nutzen, ist ein alternativer Ansatz erforderlich.
In Go 1.11 wurde ein neuer Mechanismus zum Ändern von Vorlagenvariablen eingeführt.
Global erstellen Variablen:
Um eine globale Variable zu definieren, verwenden Sie den Zuweisungsoperator (:=):
{{$globalVar := value}}
Ändern globaler Variablen:
Um den Wert einer globalen Variablen zu ändern, verwenden Sie den Zuweisungsoperator (=):
{{$globalVar = newValue}}
Anwendungsfall innerhalb von Bedingungsblöcken:
Wenn eine globale Variable ist Wird außerhalb eines {{if}}-Blocks erstellt, aber innerhalb desselben geändert, werden die Änderungen nach dem Block sichtbar.
{{$globalVar := 0}} Before: {{$globalVar}} {{if .UserData}} {{$globalVar = .UserData.UserId}} [<a href="#ask_question">Inside {{$globalVar}}</a>] {{else}} {{$globalVar = 0}} {{end}} [<a href="#ask_question">Outside {{$globalVar}}</a>]
Beispiel:
Betrachten Sie die folgende Vorlage :
m := map[string]interface{}{} t := template.Must(template.New("").Parse(src)) m["UserData"] = UserData{99} if err := t.Execute(os.Stdout, m); err != nil { panic(err) }
Mit der folgenden Quelle:
Before: {{$globalVar}} [<a href="#ask_question">Inside {{$globalVar}}</a>] [<a href="#ask_question">Outside {{$globalVar}}</a>]
Die Ausgabe wird sein:
Before: 0 [<a href="#ask_question">Inside 99</a>] [<a href="#ask_question">Outside 99</a>]
Dies demonstriert die Fähigkeit, globale Variablen zu ändern und die Änderungen zu erhalten spiegelt sich in der gesamten Vorlage wider.
Das obige ist der detaillierte Inhalt vonWie kann ich globale Variablen in Go-HTML-Vorlagen verwalten und ändern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!