Übergabe mehrerer Daten an Go-Vorlagen
Die Vorlagenausführung in Go ermöglicht Ihnen die Übergabe eines einzelnen Werts, dieser Wert kann jedoch ein zusammengesetzter Typ sein mehrere Komponenten enthaltend. Dies bietet mehrere Optionen für die Übergabe und den Zugriff auf verschiedene Datenobjekte in der Vorlage.
Zusammengesetzter Wert mithilfe von Struct:
Erstellen Sie einen benutzerdefinierten Strukturdatentyp, der die gewünschten Daten kapselt:
type Data struct { Results []User Other []int }
Daten zuweisen und Vorlage ausführen:
data := &Data{results, []int{1, 2, 3}} if err := GetTemplate("list").Execute(w, data); err != nil { // Handle error }
In Greifen Sie in der Vorlage auf die MongoDB-Ergebnisse als {{.Results}} und auf das Ganzzahlarray als {{.Other}} zu.
Zusammengesetzter Wert mithilfe der Karte:
Alternativ , erstellen Sie eine Karte mit den Daten:
m := map[string]interface{}{ "Results": results, "Other": []int{1, 2, 3}, }
Übergeben Sie die Karte an die Vorlage und greifen Sie mithilfe der Punktnotation auf die Daten zu: {{.Results}} für Ergebnisse und {{.Other}} für das Ganzzahl-Array.
Zusammengesetzter Wert mit Slice:
Ein weniger lesbarer Ansatz ist die Verwendung ein Slice mit den Daten:
s := []interface{}{ results, []int{1, 2, 3}, }
Indizieren Sie die Vorlagendaten, um auf die Komponenten zuzugreifen: {{index . 0}} für Ergebnisse und {{index . 1}} für das Integer-Array.
Zusätzliche Hinweise:
Bedenken Sie, dass der Datentyp exportiert werden muss, um in der Vorlage zugänglich zu sein.
Erwägen Sie die Verwendung einer Struktur oder Karte, um die Lesbarkeit und Wartbarkeit zu verbessern.
Es gibt auch andere Ansätze, die für diesen speziellen Fall jedoch weniger praktisch sind Szenario.
Das obige ist der detaillierte Inhalt vonWie kann ich mehrere Datenobjekte an Go-Vorlagen übergeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!