在Go Web 應用程式中,您需要多次輸出特定的HTML 行,具體取決於n 的值.
這裡有一個方法可以解決這個問題:
在HTML 模板中, {{range}}操作允許您可以迭代專案。但是,此操作需要使用切片、陣列或映射。
要滿足此要求,您可以傳遞一個沒有分配記憶體的空切片,例如 make([]struct{}, n).
Template程式碼:
<ul> {{range $idx, $e := .}} <li><a href="/?page={{$idx}}">{{$idx}}</a></li> {{end}} </ul>
測試程式碼:
tmpl := template.Must(template.New("").Parse(templ)) n := 5 if err := tmpl.Execute(os.Stdout, make([]struct{}, n)); err != nil { panic(err) }
測試程式碼:
<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>
使用填滿切片
<ul> {{range .}} <li><a href="/?page={{.}}">{{.}}</a></li> {{end}} </ul>
範本代碼:
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) }
範例測試程式碼:
<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>
使用自訂函數
<ul> {{range $idx, $e := .}}{{$idx := (Add $idx)}} <li><a href="/?page={{$idx}}">{{$idx}}</a></li> {{end}} </ul>
範本程式碼:
func Add(i int) int { return i + 1 }
自訂函數:
<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>
以上是如何使用模板在 Go Web 應用程式中多次重複 HTML 程式碼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!