У меня есть список путей, которые я хочу применить CanActivate
ко всему пути, за исключением некоторого пути. Есть ли какой-либо способ в угловом порядке отбросить какой-то путь. В настоящее время я применяю canActivate
ко всем URL-адресам. Если есть много URL-адресов, мы не хотим применять его ко всему URL-адресу, я буду применять к родительскому пути. Но если мы обратимся к родителям, это применимо и ко всем детям. Есть ли способ отбросить некоторых детей.
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] }
];
Невозможно отбросить некоторых детей, но вы можете нарушить свои маршруты таким образом, чтобы гвардия применялась к некоторым, а не к некоторым,
Попробуйте ниже,
{
path: 'parentPath',
component: ParentComponent,
canActivate: [AuthGuard],
children: [
{path : 'child1', component: ChildComponent1},
{path : 'child2', component: ChildComponent2}
]
},
{
path: 'parentPath',
component: ParentComponent,
children: [
{path : 'child3', component: ChildComponent3}
]
}
Если вы проектируете свои маршруты, как указано выше, Gurads будут применяться только к child1
и child2
, а не к child3
.
Таким образом, вы можете легко применить Guard на родительском уровне для некоторых детей.
Вот Плункер !
Надеюсь это поможет!!