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

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

DDD
Libérer: 2024-12-29 05:58:10
original
277 Les gens l'ont consulté

How to Pass Multiple Data Objects to a Go Template?

Passer plusieurs objets de données au modèle Go

Introduction
L'amélioration des fonctionnalités des modèles Go implique souvent de transmettre plusieurs objets de données. Cela nous permet d'afficher des structures de données complexes dans nos modèles.

Composition des données pour les données du modèle
Pour transmettre plusieurs objets de données, nous pouvons les composer en une seule valeur :

Utiliser une structure
Créer une structure avec des champs exportés pour les données objets :

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

Exemple :

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

Utilisation d'une carte
Créer une carte avec des clés de chaîne pour les valeurs de données nommées :

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

Exemple :

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

Accès aux données dans Modèles
Dans le modèle, nous pouvons accéder aux données composées :

{{range .Results}}
    Name: {{.Name}}
{{end}}
Copier après la connexion
{{range $key, $val := .Results}}
    {{$key}}: {{$val.Name}}
{{end}}
Copier après la connexion
{{.Other}}
Copier après la connexion

Exemple d'exécution

GetTemplate("list").Execute(w, data)
GetTemplate("list").Execute(w, m)
Copier après la connexion

Approches alternatives
Bien que les méthodes ci-dessus soient largement utilisées, d'autres options inclure :

  • Transmission de données via des canaux
  • Enregistrement de fonctions personnalisées

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