Zugriff auf URL-Parameter innerhalb einer Vorlagenbereichsschleife
Bei der Arbeit mit Go-Vorlagen ist es wichtig zu verstehen, wie innerhalb von Schleifen auf Daten zugegriffen werden kann. Betrachten Sie den folgenden Code und die folgende Vorlage:
type User struct { Username string Password []byte Email string } func main() { users := []User{ {Username: "Alice", Email: "alice@example.com"}, {Username: "Bob", Email: "bob@example.com"}, } renderer.HTML(w, http.StatusOK, "users/index", map[string]interface{}{ "lang": chi.URLParam(r, "lang"), "users": users, }) }
{{ range .users }} <form action="/{{ .lang }}/users" method="POST"> <input type="text" name="Username" value="{{ .Username }}"> <input type="text" name="Email" value="{{ .Email }}"> </form> {{ end }}
In diesem Szenario tritt möglicherweise ein Fehler auf, der darauf hinweist, dass das Feld „lang“ nicht Teil der Struktur „Benutzer“ ist. Um dieses Problem anzugehen, können wir das Konzept von „Punkt“ und die spezielle Variable „$“ nutzen.
Punkt und $ verstehen
Wenn eine Schleife aufgerufen wird, wird die Inhalte von „Punkt“ (.) werden der speziellen Variablen „$“ zugewiesen. Dies ermöglicht uns den Zugriff auf Daten von außerhalb der Schleife innerhalb des Bereichsblocks. Um beispielsweise auf den Parameter „lang“ zuzugreifen, können wir „$“ wie folgt verwenden:
{{ range .users }} <form action="/{{ $.lang }}/users" method="POST"> <input type="text" name="Username" value="{{ .Username }}"> <input type="text" name="Email" value="{{ .Email }}"> </form> {{ end }}
Dieser Ansatz löst das Problem erfolgreich und ermöglicht Ihnen den Zugriff auf den Parameter „lang“ innerhalb der Bereichsschleife. Das Verhalten von „Punkt“ und „$“ ist im Go-Templating-Leitfaden dokumentiert.
Alternative Ansätze
Wenn Sie auf Szenarien stoßen, in denen der Zugriff auf Daten mit „$“ erfolgt Da dies aufgrund verschachtelter Schleifen eine Herausforderung darstellt, sollten Sie alternative Optionen in Betracht ziehen, z. B. die Zuweisung eines „Punkts“ zu einer temporären Variablen oder die Verwendung der „with“-Anweisung, um einen dedizierten Bereich für die Zuweisung von Daten zu erstellen.
Das obige ist der detaillierte Inhalt vonWie greife ich in Go auf URL-Parameter innerhalb einer Vorlagenbereichsschleife zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!