Heim > Backend-Entwicklung > Golang > Wie kann ich mehrere Datenobjekte an eine Go-Vorlage übergeben?

Wie kann ich mehrere Datenobjekte an eine Go-Vorlage übergeben?

Patricia Arquette
Freigeben: 2024-12-29 06:35:09
Original
454 Leute haben es durchsucht

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

Mehrere Daten an eine Go-Vorlage übergeben

In Go können Sie beim Füllen einer Vorlage einen einzelnen Wert übergeben, der ein sein kann Zusammengesetzter Wert wie eine Struktur, eine Karte oder ein Slice.

Um mehrere Datenobjekte an einen zu übergeben Vorlage:

Verwenden einer Struktur:

Erstellen Sie eine Struktur, die die gewünschten Datenobjekte als exportierte Felder einbettet:

type Data struct {
    Results []User // MongoDB query result
    Other   []int  // Integer array
}
Nach dem Login kopieren

Übergeben Sie die Struktur an die Vorlagenausführung:

data := &Data{results, []int{1, 2, 3}}
if err := GetTemplate("list").Execute(w, data); err != nil {
    // Handle error
}
Nach dem Login kopieren

Im Vorlage:

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

{{range .Other}}
    {{.}}
{{end}}
Nach dem Login kopieren
Nach dem Login kopieren

Verwenden einer Karte:

Erstellen Sie eine Karte mit den Datenobjekten als Schlüssel-Wert-Paare:

m := map[string]interface{}{
    "Results": results,
    "Other":   []int{1, 2, 3},
}
Nach dem Login kopieren

Pass die Karte zur Vorlagenausführung:

if err := GetTemplate("list").Execute(w, m); err != nil {
    // Handle error
}
Nach dem Login kopieren

Im Vorlage:

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

{{range .Other}}
    {{.}}
{{end}}
Nach dem Login kopieren
Nach dem Login kopieren

Verwenden eines Slice:

Obwohl es weniger lesbar ist, können Sie auch ein Slice der Schnittstelle übergeben{}:

s := []interface{}{
    results,
    []int{1, 2, 3},
}
Nach dem Login kopieren

Übergeben Sie das Slice an die Vorlagenausführung:

if err := GetTemplate("list").Execute(w, s); err != nil {
    // Handle error
}
Nach dem Login kopieren

Im Vorlage:

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

Other: {{index . 1}}
Nach dem Login kopieren

Hinweis: Benutzerdefinierte Funktionen oder Kanäle können auch zum Übergeben mehrerer Datenobjekte verwendet werden, gelten jedoch als weniger konventionelle Praktiken.

Das obige ist der detaillierte Inhalt vonWie kann ich mehrere Datenobjekte an eine Go-Vorlage übergeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage