路由命名
路由和反向查找
正如 处理器 这里提到的,iris 提供了几个处理器注册方法,他们每个都返回一个 Route
实例。
路由名称
路由名称是比较简单的,因为我们只需要设置返回的 *Route
实例的 Name
字段即可:
package main
import (
"github.com/kataras/iris"
)
func main() {
app := iris.New()
// 定义一个函数
h := func(ctx iris.Context) {
ctx.HTML("<b>Hi</b1>")
}
// 处理器注册和命名
home := app.Get("/", h)
home.Name = "home"
// 或者
app.Get("/about", h).Name = "about"
app.Get("/page/{id}", h).Name = "page"
app.Run(iris.Addr(":8080"))
}
从路由名称生成 URL
当我们为某个路径注册处理器的时候,我们就有能力基于传入 iris 的结构化数据创建 URL。在上面的例子中,如果我们用默认的 html/template
引擎,我们可以用一个简单的动作反转路由(生成实际的URL):
Home: {{ urlpath "home" }}
About: {{ urlpath "about" }}
Page 17: {{ urlpath "page" "17" }}
上面的代码将生成下面的输出:
Home: http://localhost:8080/
About: http://localhost:8080/about
Page 17: http://localhost:8080/page/17
代码中使用路由名称
我们可以用下面的 方法/函数 处理命名路由(和他们的参数):
GetRoutes
用于获取所有注册的路由GetRoute(routeName string)
根据名称获取一个路由URL(routeName string, paramValues .....
基于提供的参数生成 URL 字符串Path(routeName string, paramValues ....
仅仅基于提供的值生成路径部分而(没有主机和协议)
例子
更多详细请看 kataras/iris/_examples/view/template_html_...。
本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。
推荐文章: