我想做這樣的事情: {{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 關注
- 153 瀏覽
添加回答
舉報
0/150
提交
取消