繁体   English   中英

角2重定向到守卫中的子路线

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM