gpt4 book ai didi

javascript - 如何将 CanActivate 应用于除某些路径之外的所有路径

转载 作者:行者123 更新时间:2023-11-30 21:16:19 27 4
gpt4 key购买 nike

我有一个路径列表,我想将 CanActivate 应用于除某些路径之外的所有路径。是否有任何 Angular 丢弃某些路径的方法。目前我正在将 canActivate 应用到所有的 URL。如果有很多 URL,我们不想将它应用到所有的 URL,我将应用到父路径。但是,如果我们适用于 parent ,它也将适用于所有 child 。有没有办法丢弃一些 child 。

const routes: Routes = [
{ path : '', component: UsersListComponent, canActivate:[AuthenticationGuard] },
{ path : 'add', component : AddComponent, canActivate:[AuthenticationGuard]},
{ path : ':id', component: UserShowComponent },
{ path : 'delete/:id', component : DeleteComponent, canActivate:[AuthenticationGuard] },
{ path : 'ban/:id', component : BanComponent, canActivate:[AuthenticationGuard] },
{ path : 'edit/:id', component : EditComponent, canActivate:[AuthenticationGuard] }
];

最佳答案

不可能丢弃一些 child ,但你可以打破你的路线,使 Guard 适用于某些而不适用于某些 child ,

试试下面,

 {
path: 'parentPath',
component: ParentComponent,
canActivate: [AuthGuard],
children: [
{path : 'child1', component: ChildComponent1},
{path : 'child2', component: ChildComponent2}
]
},
{
path: 'parentPath',
component: ParentComponent,
children: [
{path : 'child3', component: ChildComponent3}
]
}

如果你像上面那样设计你的路由,Guards 将只应用于 child1child2,而不应用于 child3

通过这种方式,您可以轻松地在父级为某些子级应用 Guard。

这是一个Plunker !!

关于javascript - 如何将 CanActivate 应用于除某些路径之外的所有路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45656958/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com