Получите доступ к шаблону нескольких переменных, получите доступ к одной из других

У меня есть контроллер, передающий две переменные

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 ответ

Решение

Кажется, что в Revel используется движок шаблонов Go, поэтому, я думаю, вы сможете использовать все, что разрешено с html/template как переменные.

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

См. Документацию для получения дополнительной информации https://golang.org/pkg/text/template/

Пожалуйста, обратите внимание, если p это не ключ на карте, а поле структуры, я думаю, вы не сможете получить к нему доступ, поскольку он не экспортируется. Хорошо, теперь я понимаю, кажется, что Revel выводит имена внутри шаблона из имен аргументов, которые были переданы Render,

Другие вопросы по тегам