Dalam aplikasi web Go anda, anda perlu mengeluarkan baris HTML tertentu beberapa kali, bergantung pada nilai n .
Berikut ialah cara untuk mendekati perkara ini:
Dalam templat HTML, tindakan {{julat}} membolehkan anda berulang ke atas item. Walau bagaimanapun, tindakan ini memerlukan kepingan, tatasusunan atau peta untuk berfungsi.
Untuk memenuhi keperluan ini, anda boleh lulus kepingan kosong tanpa memori yang diperuntukkan, seperti make([]struct{}, n).
Kod Templat:
<ul> {{range $idx, $e := .}} <li><a href="/?page={{$idx}}">{{$idx}}</a></li> {{end}} </ul>
Menguji Kod:
tmpl := template.Must(template.New("").Parse(templ)) n := 5 if err := tmpl.Execute(os.Stdout, make([]struct{}, n)); err != nil { panic(err) }
Output :
<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>
Untuk menyesuaikan indeks permulaan bagi pautan, anda boleh mengisi kepingan dengan nilai tertentu.
Kod Templat:
<ul> {{range .}} <li><a href="/?page={{.}}">{{.}}</a></li> {{end}} </ul>
Contoh Ujian Kod:
tmpl := template.Must(template.New("").Parse(templ)) n := 5 values := make([]int, n) for i := range values { values[i] = (i + 1) * 2 } if err := tmpl.Execute(os.Stdout, values); err != nil { panic(err) }
Output:
<ul> <li><a href="/?page=2">2</a></li> <li><a href="/?page=4">4</a></li> <li><a href="/?page=6">6</a></li> <li><a href="/?page=8">8</a></li> <li><a href="/?page=10">10</a></li> </ul>
Akhirnya , anda boleh menggunakan fungsi tersuai dalam templat untuk mengubah suai nilai indeks sebagai diperlukan.
Kod Templat:
<ul> {{range $idx, $e := .}}{{$idx := (Add $idx)}} <li><a href="/?page={{$idx}}">{{$idx}}</a></li> {{end}} </ul>
Fungsi Tersuai:
func Add(i int) int { return i + 1 }
Output:
<ul> <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> <li><a href="/?page=5">5</a></li> </ul>
Atas ialah kandungan terperinci Bagaimanakah saya boleh mengulangi kod HTML beberapa kali dalam aplikasi web Go menggunakan templat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!