Mengirimkan Berbilang Data ke Templat Go
Dalam Go, apabila mengisi templat, anda boleh menghantar satu nilai, yang boleh menjadi nilai komposit seperti struct, peta atau kepingan.
Untuk menghantar berbilang objek data ke templat:
Menggunakan Struct:
Buat struct yang membenamkan objek data yang diingini sebagai medan yang dieksport:
type Data struct { Results []User // MongoDB query result Other []int // Integer array }
Lepasi struct ke pelaksanaan templat:
data := &Data{results, []int{1, 2, 3}} if err := GetTemplate("list").Execute(w, data); err != nil { // Handle error }
Dalam templat:
{{range .Results}} User name: {{.Name}} {{end}} {{range .Other}} {{.}} {{end}}
Menggunakan Peta:
Buat peta dengan objek data sebagai pasangan nilai kunci:
m := map[string]interface{}{ "Results": results, "Other": []int{1, 2, 3}, }
Pas peta kepada pelaksanaan templat:
if err := GetTemplate("list").Execute(w, m); err != nil { // Handle error }
Dalam templat:
{{range .Results}} User name: {{.Name}} {{end}} {{range .Other}} {{.}} {{end}}
Menggunakan Slice:
Walaupun kurang boleh dibaca, anda juga boleh menghantar sekeping antara muka{}:
s := []interface{}{ results, []int{1, 2, 3}, }
Lepaskan kepingan kepada pelaksanaan templat:
if err := GetTemplate("list").Execute(w, s); err != nil { // Handle error }
Dalam templat:
{{range index . 0}} User name: {{.Name}} {{end}} Other: {{index . 1}}
Nota: Fungsi atau saluran tersuai juga boleh digunakan untuk menghantar berbilang objek data, tetapi dianggap sebagai amalan yang kurang konvensional.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melewati Berbilang Objek Data ke Templat Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!