Dans les modèles HTML Go, l'accès aux champs qui ne font pas partie de la structure itérée dans une boucle de plage peut provoque l'erreur « Impossible d'évaluer le champ X dans le type Y ».
Pour résoudre ce problème, examinons un scénario dans lequel une structure utilisateur n'a pas le champ .lang mais le modèle doit y accéder.
Exemple de structure d'utilisateur :
type User struct { Username string Password []byte Email string ... }
Structure d'URL :
example.com/en/users
Code du modèle :
{{ range .users }} <form action="/{{ .lang }}/users" method="POST"> <input type="text" name="Username" value="{{ .Username }}"> <input type="text" name="Email" value="{{ .Email }}"> </form> {{ end }}
Erreur :
"Impossible d'évaluer la langue du champ dans le type Utilisateur"
Solution :
Pour accéder à .lang depuis la boucle, vous pouvez utiliser la variable $, à laquelle est attribuée la valeur du point (.) après l'exécution de range.
{{ 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 effet, selon la documentation du modèle Go, "$ est défini sur l'argument de données passé à Execute, c'est-à-dire sur la valeur de départ du point."
Par conséquent, la variable $ peut être utilisée pour accéder aux champs qui ne font pas partie de la structure itérée dans une boucle de plage.
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!