Revel: передать шаблон var в URL
Я хочу понять как url
помощник работает. Например, в моем шаблоне у меня есть:
<a href="{{url "Pages.IndexPages" ???}}">my super url</a>
и в контроллере:
func (c Pages) IndexPages() revel.Result {
...
}
Мне нужен URL как
http://localhost:9000/pages?page=1
Я не хочу писать:
func (c Pages) IndexPages(page int) revel.Result {
потому что я хочу проверить, если контроллер содержит параметр page
,
Как добавить мой шаблон var в c.Params.Query
с url
помощник?
1 ответ
Revel URL помощник код в template.go
// Return a url capable of invoking a given controller method:
// "Application.ShowApp 123" => "/app/123"
func ReverseUrl(args ...interface{}) (template.URL, error) {
Нам нужно обновить руководство информацией об этой функции шаблона, но вы можете увидеть в ссылке и коде выше, как она предназначена для использования. Вы передаете ему контроллер и действие с параметрами, и он создает template.URL
объект с соответствующим маршрутом.
Кажется, вы не заинтересованы в том, как url
помощник работает (хотя это то, что вы спросили). Вы хотите знать, как пройти page
переменная к шаблону? В вашем контроллере нужно пройти page
с помощью c.RenderArgs["page"] = page
, Тогда вы можете сослаться на это в своем шаблоне: <a href="{{url "Pages.IndexPages" .page}}">my super url</a>
Шаблон Revel Doc.
Как вы заметили, вы можете вручную получить значение для page
с page := c.Params.Query.Get("page")
если вы не хотите использовать функцию привязки параметров.