带有可选ID的Angular Guard无组件路由

时间:2019-03-19 13:07:01

标签: angular

我正在通过API调用检查来限制路由,如果有权限的话。当前路线是

{
    path: '',
    children: [
        { path: '', component: HomeComponent},
        { path: ':id', component: HomeComponent },
        { path: 'unauthorized', component: UnauthorizedComponent },
        { path: '**', redirectTo: '' }
    ]
}

我想要的是限制'':id的后卫,并在其中重新路由到unauthorized,但是如果我将canActivate应用于根路径它会导致循环调用,因为它会重定向到受保护的unauthorized并阻塞UI。如果我将其应用于要保护的孩子,则不会被调用。

1 个答案:

答案 0 :(得分:1)

{
    path: '',
    children: [
        { path: '', canActivate: [WhateverService], children: [
          { path: '', component: HomeComponent},
          { path: ':id', component: HomeComponent },
        ]},
        { path: 'unauthorized', component: UnauthorizedComponent },
        { path: '**', redirectTo: '' }
    ]
}

这应该可以解决问题。这只是基本的路线分组。