Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Saya Boleh Melewati Berbilang Objek Data untuk Pergi Templat?

Bagaimanakah Saya Boleh Melewati Berbilang Objek Data untuk Pergi Templat?

Susan Sarandon
Susan Sarandonasal
2024-12-19 21:22:10687semak imbas

How Can I Pass Multiple Data Objects to Go Templates?

Melalui Berbilang Data ke Templat Pergi

Pelaksanaan templat dalam Go membolehkan anda menghantar satu nilai, tetapi nilai ini boleh menjadi jenis komposit mengandungi pelbagai komponen. Ini menawarkan beberapa pilihan untuk menghantar dan mengakses pelbagai objek data dalam templat.

Nilai Komposit Menggunakan Struktur:

Buat jenis data struktur tersuai yang merangkum data yang dikehendaki:

type Data struct {
    Results []User
    Other   []int
}

Tetapkan data dan laksanakan templat:

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

Dalam templat, akses hasil MongoDB sebagai {{.Results}} dan tatasusunan integer sebagai {{.Other}}.

Menggunakan Nilai Komposit Peta:

Sebagai alternatif, buat peta yang mengandungi data:

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

Lepaskan peta ke templat dan akses data menggunakan tatatanda titik: {{.Results}} untuk hasil dan {{.Other}} untuk tatasusunan integer.

Nilai Komposit Menggunakan Slice:

Pendekatan yang kurang boleh dibaca ialah menggunakan kepingan yang mengandungi data:

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

Indeks data templat untuk mengakses komponen: {{index . 0}} untuk hasil dan {{index . 1}} untuk tatasusunan integer.

Nota Tambahan:

Ingat bahawa jenis data mesti dieksport untuk boleh diakses dalam templat.

Pertimbangkan untuk menggunakan struct atau peta untuk meningkatkan kebolehbacaan dan kebolehselenggaraan.

Pendekatan lain wujud tetapi kurang praktikal untuk senario khusus ini.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melewati Berbilang Objek Data untuk Pergi Templat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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