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 }}
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 }}
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!