为多个变量挖掘模板,访问其他范围内的一个变量

时间:2017-03-20 20:51:50

标签: html go revel

我有一个传递两个变量的控制器

func (a App) Page() revel.Result {
    var g []*G
    ...
    return c.Render(p, g)
}

在我的.html我希望迭代g。是否有可能在迭代中访问p?我无法管理。我的尝试看起来如下

{{range .g}}
... // print g related stuff
.p
{{end}}

并抛出can't evaluate field p in type *G

1 个答案:

答案 0 :(得分:1)

Revel似乎正在使用Go的模板引擎,因此我猜你应该能够使用html/template变量所允许的任何内容。

{{$p := .p}}
{{range .g}}
... // print g related stuff
{{$p}}
{{end}}

有关详细信息,请参阅文档https://golang.org/pkg/text/template/#hdr-Variables

请注意,如果p不是地图中的键,而是结构的字段,我相信,由于未导出,您无法访问它。 好的,我现在明白了,Revel似乎从传递给Render的参数名称中获取了模板中的名称。