У меня 3 модуля: App, Shared, Core и Admin Это объект root:
export const routes: Routes = [
{path:'home', component:HomeComponent, canActivate:[AuthGuardService]},
{path:'detail/:id', component:DetailComponent},
{path: 'register', component: RegisterComponent},
{path:'login', component: LoginComponent},
{path:'', redirectTo:'login', pathMatch: 'full'},
{path:'**', pathMatch: 'full' ,redirectTo:'login'}
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule { }
Core Module, в котором объявлены все основные компоненты, так что это похоже на мой основной модуль и я импортирую appRoutingModule здесь:
@NgModule({
declarations: [
HomeComponent,
DetailComponent,
RegisterComponent,
LoginComponent,
NavbarComponent
],
imports: [
SharedModule,
AppRoutingModule,
AdminModule
],
exports:[AppRoutingModule, NavbarComponent]
})
export class CoreModule {
//para evitar que este modulo seja importado mais que uma vez
constructor( @Optional() @SkipSelf() parentModule: CoreModule) {
if (parentModule) {
throw new Error('CoreModule has already been loaded. You should only import Core modules in the AppModule only.');
}
}
}
App.Module
@NgModule({
declarations: [
AppComponent,
],
imports: [
BrowserModule,
SharedModule,
CoreModule,
AdminModule
],
providers: [
DataService,
fakeBackendProvider,
AuthService,
AuthGuardService,
ShoppingCartService
],
bootstrap: [AppComponent]
})
export class AppModule { }
И, наконец, модуль администратора и его файл маршрутизации
@NgModule({
imports: [
SharedModule,
AdminRoutingModule
RouterModule.forChild([])
],
declarations: [AdminComponent],
exports:[AdminComponent],
providers:[AuthGuardService]
})
export class AdminModule { }
Это файл конфигурации административных маршрутов:
export const adminRoutes: Routes = [
{path:'admin', component:AdminComponent , canActivate:[AuthGuardService] },
];
@NgModule({
imports: [RouterModule.forChild(adminRoutes)],
exports: [RouterModule]
})
export class AdminRoutingModule { }
Я перепробовал все, что только мог представить: импорт, экспорт, объявление ... ничего не работает. Когда я нажимаю ссылку администратора (при входе в систему), система не распознает маршруты, поэтому она дает мне логин, потому что это так называемая подстановочная карта ...