Maison >développement back-end >Golang >Comment accéder aux champs structurels des éléments de carte dans les modèles HTML à l'aide du package html/template de Go ?
Récupération du champ Struct de l'élément de carte dans le package Go HTML/Template
Situation :
Vous avez une structure et une carte utilisant la structure comme valeur. Vous souhaitez accéder aux champs de la structure dans une page HTML rendue à l'aide du package html/template.
Solution :
Pour activer l'accès aux champs de la structure dans le modèle, ils doivent être exportés. L'exportation d'un champ implique de commencer son nom par une lettre majuscule.
Explication détaillée :
<code class="go">type Task struct { cmd string args []string Desc string // Exported field }</code>
Remarquez le « D » majuscule dans Desc.
De même, mettez à jour les références de la carte et du modèle :
<code class="go">var taskMap = map[string]Task{ "find": Task{ cmd: "find", args: []string{"/tmp/"}, Desc: "find files in /tmp dir", }, "grep": Task{ cmd: "grep", args:[]string{"foo","/tmp/*", "-R"}, Desc: "grep files match having foo", }, }</code>
<code class="html">{{range $key, $value := .}} <li>Task Name: {{$key}}</li> <li>Task Value: {{$value}}</li> <li>Task description: {{$value.Desc}}</li> {{end}}</code>
Résultats :
La sortie contiendra le champ Desc pour chaque tâche :
<code class="html"><html> <li>Task Name: find</li> <li>Task Value: {find [/tmp/] find files in /tmp dir}</li> <li>Task description: find files in /tmp dir</li> <li>Task Name: grep</li> <li>Task Value: {grep [foo /tmp/* -R] grep files match having foo}</li> <li>Task description: grep files match having foo</li> </html></code>
Remarque : Cette solution exporte la structure entière, pensez donc à utiliser une fonction de modèle définie si vous n'avez besoin que de champs spécifiques.
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!