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
Patricia ArquetteOriginal
2024-12-29 06:35:09471Durchsuche

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
}

Ü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
}

Im Vorlage:

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

{{range .Other}}
    {{.}}
{{end}}

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},
}

Pass die Karte zur Vorlagenausführung:

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

Im Vorlage:

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

{{range .Other}}
    {{.}}
{{end}}

Verwenden eines Slice:

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

s := []interface{}{
    results,
    []int{1, 2, 3},
}

Übergeben Sie das Slice an die Vorlagenausführung:

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

Im Vorlage:

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

Other: {{index . 1}}

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!

Stellungnahme:
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