Maison > développement back-end > Golang > Comment accéder aux paramètres d'URL dans une boucle de plage de modèles dans Go ?

Comment accéder aux paramètres d'URL dans une boucle de plage de modèles dans Go ?

Patricia Arquette
Libérer: 2024-11-09 12:59:02
original
900 Les gens l'ont consulté

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

Accès aux paramètres d'URL dans une boucle de plage de modèles

Lorsque vous travaillez avec des modèles Go, il est essentiel de comprendre comment les données sont accessibles dans les boucles. Considérez le code et le modèle suivants :

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,
    })
}
Copier après la connexion
{{ range .users }}
  <form action="/{{ .lang }}/users" method="POST">
    <input type="text" name="Username" value="{{ .Username }}">
    <input type="text" name="Email" value="{{ .Email }}">
  </form>
{{ end }}
Copier après la connexion

Dans ce scénario, vous pouvez rencontrer une erreur indiquant que le champ « lang » ne fait pas partie de la structure « Utilisateur ». Pour résoudre ce problème, nous pouvons exploiter le concept de « point » et la variable spéciale « $ ».

Comprendre Dot et $

Lorsqu'une boucle est invoquée, le le contenu du "point" (.) est affecté à la variable spéciale "$". Cela nous permet d'accéder aux données de l'extérieur de la boucle dans le bloc de plage. Par exemple, pour accéder au paramètre "lang", nous pouvons utiliser "$" comme suit :

{{ range .users }}
  <form action="/{{ $.lang }}/users" method="POST">
    <input type="text" name="Username" value="{{ .Username }}">
    <input type="text" name="Email" value="{{ .Email }}">
  </form>
{{ end }}
Copier après la connexion

Cette approche résout avec succès le problème, vous permettant d'accéder au paramètre "lang" dans la boucle de plage. Le comportement de "dot" et "$" est documenté dans le guide des modèles Go.

Approches alternatives

Si vous rencontrez des scénarios dans lesquels l'accès aux données à l'aide de "$" est difficile en raison des boucles imbriquées, envisagez des options alternatives telles que l'attribution d'un « point » à une variable temporaire ou l'utilisation de l'instruction « with » pour créer une portée dédiée à l'attribution de données.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal