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

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

Linda Hamilton
Libérer: 2024-11-09 15:42:02
original
363 Les gens l'ont consulté

How to Access External Parameters in a Go Template Range Loop?

Go Template accédant à un paramètre externe dans une boucle de plage

Considérez une situation dans laquelle vous avez une structure utilisateur avec des champs tels que le nom d'utilisateur, le mot de passe et E-mail. Dans une application Web, la structure de l'URL peut inclure un paramètre de langue (en) auquel il faut accéder dans un modèle qui itère sur les utilisateurs.

Dans le modèle fourni :

{{ 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

Accès .lang dans la boucle de plage entraîne l'erreur suivante :

"impossible d'évaluer le champ X dans le type Y (X ne fait pas partie de Y mais est coincé dans une boucle {{range}})"

Pour résoudre ce problème, il est nécessaire d'accéder au paramètre .lang depuis l'extérieur de la boucle. Ceci peut être réalisé en utilisant la variable $. Après l'invocation de la plage, le contenu de la variable de plage (. dans ce cas) est affecté à $. Par conséquent, le modèle peut être modifié 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

En utilisant $, le modèle peut accéder avec succès au paramètre .lang bien qu'il ne s'agisse pas d'un champ dans la structure User.

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