Есть ли способ установить "base" canActivate при настройке маршрутов в Angular2? Чтобы все маршруты были покрыты одной и той же базовой проверкой, а затем каждый маршрут может иметь более детальную проверку.
У меня есть AppModule с такой маршрутизацией:
@NgModule({
imports: [
RouterModule.forRoot([
{
path: '',
component: HomeComponent,
canActivate: [AuthenticationGuardService],
data: { roles: [Roles.User] }
}
])
],
exports: [
RouterModule
]
})
export class AppRoutingModule { }
И для функционального модуля FeatureModule:
@NgModule({
imports: [
RouterModule.forChild([
{
path: "feature",
component: FeatureComponent,
// I'd like to avoid having to do this:
canActivate: [AuthenticationGuardService],
data: { roles: [Roles.User] }
}
])
],
exports: [
RouterModule
]
})
export class FeatureRoutingModule { }
Позвольте AuthenticationGuardService проверить, имеет ли пользователь доступ к маршруту, используя роли, предоставленные в data.
Могу ли я сделать что-то, чтобы избежать установки canActivate и data во всех модулях маршрутизации функций? Я хотел бы просто настроить "base" canActivate для всех маршрутов в этом приложении.