Angular2'deki yolları yapılandırırken bir "temel" canActivate
ayarlamanın bir yolu var mı? Böylece tüm güzergahlar aynı temel kontrol tarafından karşılanır ve daha sonra her rota daha ayrıntılı bir kontrole sahip olabilir.Angular 2 uygulamasındaki tüm yollar için bir temel koruma kullanma
@NgModule({
imports: [
RouterModule.forRoot([
{
path: '',
component: HomeComponent,
canActivate: [AuthenticationGuardService],
data: { roles: [Roles.User] }
}
])
],
exports: [
RouterModule
]
})
export class AppRoutingModule { }
Ve özellik modülü FeatureModule
için:
AppModule
sahip bir kullanıcı rollerini kullanarak bir rota erişimi varsa ben
AuthenticationGuardService
çek izin
@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 { }
data
'da sağlanmıştır.
Tüm özellik yönlendirme modüllerinde canActivate
ve data
ayarını yapmamak için bir şey yapabilir miyim? Bu uygulamadaki tüm yollar için bir "taban" canActivate
yapılandırmak istiyorum.
Bir sınıf veya yardımcı işlevinden rota nesnesi oluşturabilir. Bu en basit (ve muhtemelen tek mevcut) çözümdür. – estus
@estus Yani demek istediğim gibi bir şey yapmalıyım: RouterModule.forChild ([helperService.getRoute ("özellik", FeatureComponent)]) '? Ve sonra bu yardımcı hizmet (veya sınıf veya yöntem ..) her zaman temel Guard oluşturulan rota nesnesine ekler? – Joel
Evet. Ben şahsen RouterModule.forChild ([yeni AuthenticatedRoute ({yol: ..., bileşen: ...})]) – estus