Go-Vorlage für den Zugriff auf externe Parameter in einer Bereichsschleife
Stellen Sie sich eine Situation vor, in der Sie eine Benutzerstruktur mit Feldern wie Benutzername, Passwort und haben E-Mail. In einer Webanwendung kann die URL-Struktur einen Sprachparameter (en) enthalten, auf den innerhalb einer Vorlage zugegriffen werden muss, die über Benutzer iteriert.
In der bereitgestellten Vorlage:
{{ range .users }} <form action="/{{ .lang }}/users" method="POST"> <input type="text" name="Username" value="{{ .Username }}"> <input type="text" name="Email" value="{{ .Email }}"> </form> {{ end }}
Zugriff .lang innerhalb der Range-Schleife führt zu folgendem Fehler:
"Feld X im Typ Y kann nicht ausgewertet werden (X ist nicht Teil von Y, sondern steckt in einer {{range}}-Schleife fest)"
Um dieses Problem zu lösen, ist es notwendig, von außerhalb der Schleife auf den .lang-Parameter zuzugreifen. Dies kann durch die Verwendung der $-Variablen erreicht werden. Nach dem Bereichsaufruf wird der Inhalt der Bereichsvariablen (in diesem Fall .) $ zugewiesen. Daher kann die Vorlage wie folgt geändert werden:
{{ range .users }} <form action="/{{ $.lang }}/users" method="POST"> <input type="text" name="Username" value="{{ .Username }}"> <input type="text" name="Email" value="{{ .Email }}"> </form> {{ end }}
Durch die Verwendung von $ kann die Vorlage erfolgreich auf den .lang-Parameter zugreifen, obwohl es sich nicht um ein Feld in der Benutzerstruktur handelt.
Das obige ist der detaillierte Inhalt vonWie greife ich auf externe Parameter in einer Go-Vorlagenbereichsschleife zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!