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 ?

Comment accéder aux champs structurels des éléments de carte dans les modèles HTML à l'aide du package html/template de Go ?

DDD
Libérer: 2024-10-24 07:34:30
original
362 Les gens l'ont consulté

How to Access Struct Fields of Map Elements in HTML Templates Using Go's html/template Package?

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

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>
Copier après la connexion
<code class="html">{{range $key, $value := .}}
   <li>Task Name:        {{$key}}</li>
   <li>Task Value:       {{$value}}</li>
   <li>Task description: {{$value.Desc}}</li>
{{end}}</code>
Copier après la connexion

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

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!

source:php
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal