狂欢模板多个变量,访问其他范围内的一个变量



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

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.

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的参数的名称中派生了模板中的名称。

最新更新