我想了解url
助手是如何工作的。
例如,在我的模板中,我有:
<a href="{{url "Pages.IndexPages" ???}}">my super url</a>
并在控制器中:
func (c Pages) IndexPages() revel.Result {
...
}
我需要网址
http://localhost:9000/pages?page=1
我不想写:
func (c Pages) IndexPages(page int) revel.Result {
因为我想检查控制器是否包含参数page
如何使用c.Params.Query
帮助器将模板var添加到url
?
答案 0 :(得分:0)
Revel url helper code in 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 Template Doc。
如您所知,如果您不想使用参数绑定功能,可以使用page
手动获取page := c.Params.Query.Get("page")
的值。