在 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中文网其他相关文章!