Есть ли способ установить "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
для всех маршрутов в этом приложении.