Mencipta Struktur HTML Berulang dengan Templat Go
Aplikasi web Dalam Go, keadaan timbul apabila penjanaan elemen HTML secara berulang menjadi perlu. Sebagai contoh, membuat pautan penomboran dalam senarai mungkin memerlukan pendua baris kod beberapa kali. Artikel ini menunjukkan penyelesaian yang berkesan menggunakan templat Go dan keupayaan gelung yang wujud.
Memanfaatkan {{julat}} Tindakan
Untuk mencapai pengulangan dalam templat, Go bergantung pada tindakan {{julat}}. Walau bagaimanapun, tindakan ini menjangkakan struktur data yang boleh diubah, seperti kepingan, tatasusunan atau peta. Untuk memudahkan ini, anda boleh menghantar kepingan kosong ke templat, kerana kepingan kosong menggunakan overhed memori yang minimum.
Melaksanakan Penyelesaian
Pertimbangkan templat berikut yang menghasilkan penomboran pautan:
<ul> {{range $idx, $e := .}} <li><a href="/?page={{$idx}}">{{idx}}</a></li> {{end}} </ul>
Dalam kod ujian yang disertakan, kami memulakan sepotong panjang tertentu dan menyerahkannya kepada templat:
func main() { tmpl := template.Must(template.New("").Parse(templ)) n := 5 if err := tmpl.Execute(os.Stdout, make([]struct{}, n)); err != nil { panic(err) } }
Ini menghasilkan output berikut:
<ul> <li><a href="/?page=0">0</a></li> <li><a href="/?page=1">1</a></li> <li><a href="/?page=2">2</a></li> <li><a href="/?page=3">3</a></li> <li><a href="/?page=4">4</a></li> </ul>
Menyesuaikan Elemen Bernombor
Jika pengindeksan lalai (bermula dari 0 ) tidak sesuai, anda boleh memilih untuk menyesuaikan nombor yang dipaparkan. Dua pendekatan tersedia:
1. Mengisi Kepingan: Berikan nilai eksplisit kepada elemen hirisan.
2. Menggunakan Fungsi Tersuai: Tentukan fungsi yang menambah nombor dan memanggilnya dalam templat.
Kedua-dua kaedah ini membolehkan anda mengawal penomboran unsur yang dijana.
Dengan memanfaatkan fleksibiliti daripada templat Go dan teknik ini, anda boleh menyelaraskan proses pengulangan struktur HTML dalam aplikasi web Golang anda.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencipta Struktur HTML Berulang dengan Cekap dalam Templat Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!