Heim > Artikel > Backend-Entwicklung > Wie greife ich in Go-Vorlagenbereichsschleifen auf Nichtstrukturfelder zu?
In Go-HTML-Vorlagen kann der Zugriff auf Felder, die nicht Teil der iterierten Struktur in einer Bereichsschleife sind, passieren verursachen den Fehler „Feld .lang-Feld, aber die Vorlage muss darauf zugreifen.
Beispielbenutzerstruktur:
type User struct { Username string Password []byte Email string ... }URL-Struktur:
example.com/en/users
Vorlage Code:
{{ range .users }} <form action="/{{ .lang }}/users" method="POST"> <input type="text" name="Username" value="{{ .Username }}"> <input type="text" name="Email" value="{{ .Email }}"> </form> {{ end }}Fehler:
„Feld lang im Typ Benutzer kann nicht ausgewertet werden“
Lösung:Um innerhalb der Schleife auf .lang zuzugreifen, können Sie die Variable $ verwenden, der der Wert dot zugewiesen ist (.) nach der Ausführung des Bereichs.
Dies liegt daran, dass gemäß der Go-Vorlagendokumentation „$ auf das Datenargument gesetzt wird, das an Execute übergeben wird, d. h. auf den Startwert von Punkt.“{{ range .users }} <form action="/{{ $.lang }}/users" method="POST"> <input type="text" name="Username" value="{{ .Username }}"> <input type="text" name="Email" value="{{ .Email }}"> </form> {{ end }}
Daher kann die Variable $ verwendet werden, um auf Felder zuzugreifen, die nicht Teil der Struktur sind, über die innerhalb einer Bereichsschleife iteriert wird.
Das obige ist der detaillierte Inhalt vonWie greife ich in Go-Vorlagenbereichsschleifen auf Nichtstrukturfelder zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!