Maison > développement back-end > Golang > Comment puis-je transmettre plusieurs objets de données à un modèle Go ?

Comment puis-je transmettre plusieurs objets de données à un modèle Go ?

Patricia Arquette
Libérer: 2024-12-29 06:35:09
original
454 Les gens l'ont consulté

How Can I Pass Multiple Data Objects to a Go Template?

Transmission de plusieurs données à un modèle Go

Dans Go, lorsque vous remplissez un modèle, vous pouvez transmettre une seule valeur, qui peut être une valeur composite telle qu'une structure, une carte ou une tranche.

Pour transmettre plusieurs objets de données à un template :

Utilisation d'une structure :

Créez une structure qui intègre les objets de données souhaités en tant que champs exportés :

type Data struct {
    Results []User // MongoDB query result
    Other   []int  // Integer array
}
Copier après la connexion

Passez la structure à l'exécution du modèle :

data := &Data{results, []int{1, 2, 3}}
if err := GetTemplate("list").Execute(w, data); err != nil {
    // Handle error
}
Copier après la connexion

Dans le modèle :

{{range .Results}}
    User name: {{.Name}}
{{end}}

{{range .Other}}
    {{.}}
{{end}}
Copier après la connexion
Copier après la connexion

Utilisation d'une carte :

Créer une carte avec les objets de données sous forme de paires clé-valeur :

m := map[string]interface{}{
    "Results": results,
    "Other":   []int{1, 2, 3},
}
Copier après la connexion

Réussir la carte à l'exécution du modèle :

if err := GetTemplate("list").Execute(w, m); err != nil {
    // Handle error
}
Copier après la connexion

Dans le modèle :

{{range .Results}}
    User name: {{.Name}}
{{end}}

{{range .Other}}
    {{.}}
{{end}}
Copier après la connexion
Copier après la connexion

Utilisation d'une tranche :

Bien que moins lisible, vous pouvez également transmettre une tranche d'interface{} :

s := []interface{}{
    results,
    []int{1, 2, 3},
}
Copier après la connexion

Passez la tranche à l'exécution du modèle :

if err := GetTemplate("list").Execute(w, s); err != nil {
    // Handle error
}
Copier après la connexion

Dans le modèle :

{{range index . 0}}
    User name: {{.Name}}
{{end}}

Other: {{index . 1}}
Copier après la connexion

Remarque : les fonctions ou canaux personnalisés peuvent également être utilisés pour transmettre plusieurs objets de données, mais sont considérés comme des pratiques moins conventionnelles.

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