我正在尝试将循环实现为自定义函数。它需要迭代次数和大括号之间的内容,然后它应该迭代括号之间的内容 n 次。请看例子:
main.go
template.Must(template.ParseFiles("palette.html")).Funcs(template.FuncMap{
"loop": func(n int, content string) string {
var r string
for i := 0; i <= n; i++ {
r += content
}
return r
},
}).ExecuteTemplate(rw, index, nil)
索引.html
{{define "index"}}
<div class="row -flex palette">
{{loop 16}}
<div class="col-2"></div>
{{end}}
</div>
{{end}}
输出
<div class="row -flex palette">
<div class="col-2"></div>
<div class="col-2"></div>
<div class="col-2"></div>
<div class="col-2"></div>
... 16 times
</div>
有可能实施吗?动机是 的标准功能text/template不允许只在大括号之间迭代内容。是的,我们可以range通过“外部”数据的行动来做到这一点。
相关分类