我有这个结构:
type Site struct { Name string Pages []int }
我将一个实例传递Site
给模板.
如果我想写一个所有页面的列表,我会这样做
{{range .Pages}}
现在,Name
在循环中使用该字段的最简单方法是什么(例如更改href
为Name/page
)?
请注意,基于外部对象是传递给模板的全局对象这一事实的解决方案是可以的.
您应该知道传入模板的变量可用$
.
{{range .Pages}}
(参见"变量"下的文本/模板文档.)
关于什么:
{{$name := .Name}} {{range $page := .Pages}}
或者只是Pages
使用Name作为值制作地图?
type Site struct { Pages map[string]string } {{range $page, $name := .Pages}}
看起来没有比为外部对象(或其属性)显式声明变量更简单的解决方案:
{{$out := .}} {{range .Pages}}
编辑:这个答案不再是正确的,请看看chowey的答案.