Fehler: „Feld Feld iteriert in einer Go-Vorlage. Dies kann passieren, wenn Sie verschachtelte Bereiche haben und versuchen, auf eine Variable zuzugreifen, die in einem äußeren Bereich definiert ist.
Betrachten Sie beispielsweise das folgende Beispiel:In der entsprechenden Vorlagendatei , versucht der folgende Code, innerhalb der Bereichsschleife auf die lang-Variable zuzugreifen:
type User struct { Username string Password []byte Email string } func main() { users := []User{{"user1", []byte("password"), "user1@example.com"}, {"user2", []byte("password"), "user2@example.com"}} renderer.HTML(w, http.StatusOK, "users/index", map[string]interface{}{ "lang": "en", "users": users, }) }
Da lang jedoch kein Feld der Benutzerstruktur ist, löst die Vorlagen-Engine die aus oben erwähnter Fehler. Um dieses Problem zu beheben, können Sie die Variable $ verwenden, um auf den aktuellen Kontext zuzugreifen, der alle im äußeren Bereich definierten Variablen enthält. Der aktualisierte Vorlagencode würde so aussehen:
{{ range .users }} <form action="/{{ .lang }}/users" method="POST"> <input type="text" name="Username" value="{{ .Username }}"> <input type="text" name="Email" value="{{ .Email }}"> </form> {{ end }}
Dadurch wird korrekt auf die Lang-Variable zugegriffen und die gewünschte Ausgabe generiert.
Das obige ist der detaillierte Inhalt vonWie greife ich in Go-Vorlagen auf Variablen aus äußeren Bereichen zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!