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

Patricia Arquette
Freigeben: 2024-11-09 12:59:02
Original
877 Leute haben es durchsucht

How to Access URL Parameters Within a Template Range Loop in Go?

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

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

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!

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