我想做这样的事情: {{range $y := .minYear .maxYear}}
<option value="y"> {{$y}}</option>
{{end}}但模板未按预期呈现。我怎样才能解决这个问题?
2 回答
斯蒂芬大帝
TA贡献1827条经验 获得超8个赞
模板包不直接支持这一点。创建一个返回整数值切片的模板函数:
var funcs = template.FuncMap{
"intRange": func(start, end int) []int {
n := end - start + 1
result := make([]int, n)
for i := 0; i < n; i++ {
result[i] = start + i
}
return result
},
}
像这样使用它:
t := template.Must(template.New("").Funcs(funcs).Parse(`{{range $y := intRange .minYear .maxYear}}
<option value="y"> {{$y}}</option>{{end}}`))
err := t.Execute(os.Stdout, map[string]int{"minYear": 1961, "maxYear": 1981})
if err != nil {
// handle error
}
- 2 回答
- 0 关注
- 109 浏览
添加回答
举报
0/150
提交
取消