Maison > développement back-end > Golang > le corps du texte

Comment accéder aux champs non structurés dans les boucles de plage de modèles Go ?

Linda Hamilton
Libérer: 2024-11-11 01:15:03
original
460 Les gens l'ont consulté

How to Access Non-Struct Fields in Go Template Range Loops?

Erreur du modèle Go : accès à un champ non structuré dans une boucle de plage

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
    ...
}
Copier après la connexion

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 }}
Copier après la connexion

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 }}
Copier après la connexion

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!

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