Heim > Backend-Entwicklung > Golang > Wie greife ich in Go-Vorlagen auf Variablen aus äußeren Bereichen zu?

Wie greife ich in Go-Vorlagen auf Variablen aus äußeren Bereichen zu?

Barbara Streisand
Freigeben: 2024-11-09 03:36:02
Original
910 Leute haben es durchsucht

How to Access Variables from Outer Ranges in Go Templates?

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,
    })
}
Nach dem Login kopieren

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 }}
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage