Heim >Backend-Entwicklung >Golang >Wie greife ich auf externe Parameter in einer Go-Vorlagenbereichsschleife zu?

Wie greife ich auf externe Parameter in einer Go-Vorlagenbereichsschleife zu?

Linda Hamilton
Linda HamiltonOriginal
2024-11-09 15:42:02368Durchsuche

How to Access External Parameters in a Go Template Range Loop?

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!

Stellungnahme:
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