Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah Saya Boleh Melewati Berbilang Objek Data ke Templat Go?

Bagaimanakah Saya Boleh Melewati Berbilang Objek Data ke Templat Go?

Patricia Arquette
Lepaskan: 2024-12-29 06:35:09
asal
454 orang telah melayarinya

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

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
}
Salin selepas log masuk

Lepasi struct ke pelaksanaan templat:

data := &Data{results, []int{1, 2, 3}}
if err := GetTemplate("list").Execute(w, data); err != nil {
    // Handle error
}
Salin selepas log masuk

Dalam templat:

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

{{range .Other}}
    {{.}}
{{end}}
Salin selepas log masuk
Salin selepas log masuk

Menggunakan Peta:

Buat peta dengan objek data sebagai pasangan nilai kunci:

m := map[string]interface{}{
    "Results": results,
    "Other":   []int{1, 2, 3},
}
Salin selepas log masuk

Pas peta kepada pelaksanaan templat:

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

Dalam templat:

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

{{range .Other}}
    {{.}}
{{end}}
Salin selepas log masuk
Salin selepas log masuk

Menggunakan Slice:

Walaupun kurang boleh dibaca, anda juga boleh menghantar sekeping antara muka{}:

s := []interface{}{
    results,
    []int{1, 2, 3},
}
Salin selepas log masuk

Lepaskan kepingan kepada pelaksanaan templat:

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

Dalam templat:

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

Other: {{index . 1}}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan