[英]angular 2 redirect to child route in guard
我定义了以下路线:
{
path: "dashboard/:id",
component: dashboard.DashboardComponent,
canActivate: [guard.LoggedInGuard],
children: [
{
path: "dock/:dockid",
children: [
{
path: "",
component: dock.DockComponent,
canActivate: [guard.DockExistsGuard],
}
]
},
{
path: "dock-request",
component: dashboard.DockRequestComponent,
pathMatch: "full"
}
...
在DockExistsGuard
内部,如果不满足X条件,我试图重定向到dock-request
。 我目前可以使用它,但是我感觉我的实现是错误的-(感觉很hacky)。
this.router.navigate(['/dashboard/' + id + '/dock-request']);
是否有更好的方法来实现此重定向?
我在这里:
http://localhost:4200/dashboard/136364285/home
试图到达这里:
http://localhost:4200/dashboard/136364285/dock/71672341
但需要从.guard
重定向到此处:
http://localhost:4200/dashboard/136364285/dock-request
因此,尽管我还没有必要这样做,但我同意这是完全合理的期望。 查看路由器文档,似乎可以通过指定子树(使用relativeTo
)进行导航,如下所示:
// navigate to /team/33/user/22
router.createUrlTree(['../22'], {relativeTo: route});
看来您可以按照以下方式使用:
router.navigate(['../22'], {relativeTo: route});
在您的特定情况下,您应该可以执行以下操作:
this.router.navigate(['../dock-request'], {relativeTo: route});
希望有帮助!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.