在Golang 模板中迭代HTML
在Golang 中,當迭代模板中的元素列表時,您可以使用{{range } } 行動。但是,它需要一個數組或切片來迭代。要重複 HTML 行,我們可以多次建立一個空切片並用零值或特定值填充它。
用零值切片
我們可以建立一個空切片 make([]struct{}, n) 來表示我們需要的迭代次數。然後,在模板中,我們使用 {{range}}${} 語法來迭代切片。例如:
tmpl := template.Must(template.New("").Parse(` <ul> {{range $idx, $e := .}} <li><a href="/?p={{idx}}">{{$idx}}</a></li> {{end}} </ul>`)) n := 5 tmpl.Execute(w, make([]struct{}, n))
使用填充切片
或者,我們可以用特定值填滿切片。這種方法允許我們跳過在 HTML 程式碼中使用索引 ($idx)。例如:
tmpl := template.Must(template.New("").Parse(` <ul> {{range .}} <li><a href="/?p={{.}}">{{.}}</a></li> {{end}} </ul>`)) values := make([]int, 5) for i := range values { values[i] = i + 1 } tmpl.Execute(w, values)
使用零值切片和自訂函數
另一個選項是建立一個自訂函數,將1 加到切片索引並傳回結果。這允許您在將數字遞增 1 的同時使用切片索引。例如:
tmpl := template.Must(template.New("").Funcs(template.FuncMap{ "Add": func(i int) int { return i + 1 }, }).Parse(` <ul> {{range $idx, $e := .}}{{$idx := (Add $idx)}} <li><a href="/?p={{$idx}}">{{$idx}}</a></li> {{end}} </ul>`)) n := 5 tmpl.Execute(w, make([]struct{}, n))
這些方法提供了根據您的特定要求多次重複 HTML 行的靈活方法。
以上是如何使用 Golang 範本多次重複 HTML 行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!