我的项目需要基本的增量算法和循环,以保持模板的可读性并使用值填充 9x9 网格。这些值存储在字符串数组中,因此必须能够控制索引。
这是我的处理程序,其中定义了两个模板函数:
func HomeHandler(w http.ResponseWriter, req *http.Request) {
t := template.New("home.html").Funcs(template.FuncMap{
"loop": func(n int) []struct{} {
return make([]struct{}, n)
},
}).Funcs(template.FuncMap{
"inc": func(n int) int {
return n + 1
},
})
t, err := t.ParseFiles("templates/home.html")
if err != nil {
log.Print("template/home error:", err)
}
t.ExecuteTemplate(w, "home.html", nil)
}
要创建网格,我使用循环函数,如下所示:
{{ range loop 3}}
<tbody>
{{ range loop 3}}
<tr>
{{ range loop 9}}
<td> <input value="1" type="text" name="value[]" maxlength="1" size="1">
{{end}}
{{end}}
{{end}}
但是,我想使用我的数据将 input 元素的 value 属性设置为正确的值。我相信我可以通过以下方式访问索引:
{{index .MyArray 3}}
我将用我需要能够正确递增的计数器替换“3”。
不幸的是,我似乎无法正确地重新分配变量,因为我最多只能将它从 0 增加到 1。
这是我的计数器模板:
{{$count := 0}}
{{ range loop 3}}
<tbody>
{{ range loop 3}}
<tr>
{{ range loop 9}}
{{$count := inc $count}}
<td> <input value="1" type="text" name="value[]" maxlength="1" size="1">
{{end}}
{{end}}
{{end}}
jeck猫
相关分类