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!