在GoHTML模板中,使用{{range}}遍历切片时,通过$index,$value:=.Slice可同时获取索引和值,索引从0开始。变量名必须以$开头,两个变量缺一不可。若需从1开始,可注册add1函数实现。注意作用域内访问外层变量需用$符号。
在Go HTML模板中,使用`{{range}}`语法遍历切片时,可通过`$index, $value := .Slice`形式同时获取当前元素索引和值,索引从0开始,无需额外函数或上下文变量。
在Go的html/template包中,{{range}}指令原生支持带索引的遍历。开发者只需在{{range}}后声明两个变量:第一个为索引(通常命名为$index),第二个为当前元素(例如$article),并通过:=绑定数据源,即可在模板内同时获取索引和值。
以下是一个典型用法示例:
长期稳定更新的攒劲资源: >>>点此立即查看<<<
{{ range $index, $article := $.Articles }}
#{{ add1 $index }}
{{ $article.Title }}
{{ end }}
$开头,例如$index;若写成index,模板会将其视为普通文本,而非变量声明。{{range $article := .Articles}}),则该变量代表元素值,无法访问索引。需要索引时,必须同时声明两个变量。$index为整数类型,可直接用于条件判断。例如{{if eq $index 0}}可标记第一个元素,或将其传递给自定义函数。若希望序号从1开始(而非默认的0),需在模板的函数映射表中注册一个add1函数,例如:
"add1": func(i int) int { return i + 1 }
然后在模板中使用{{ add1 $index }},序号便依次变为1、2、3。
在{{range}}作用域内,如果需访问外层作用域的.,必须显式使用$.FieldName(如$.PageTitle)。否则由于作用域切换,外层变量可能无法访问。
带索引的{{range}}可以嵌套使用。例如遍历二维切片或map的键值对:
{{range $i, $row := .Grid}}{{range $j, $cell := $row}}...{{end}}{{end}}
这种写法可轻松实现灵活的表格或网格渲染。
掌握这一模式后,开发者可在模板中高效实现序号列表、首项高亮、奇偶行样式、分页导航等常见需求,无需后端预处理索引字段,直接在前端模板中完成。
侠游戏发布此文仅为了传递信息,不代表侠游戏网站认同其观点或证实其描述