Итак, у меня app-routing.module.ts как таковой (слегка отредактированный):
const routes: Routes = [
{
path: '',
component: ShellComponent,
children: [
{ path: 'welcome', component: WelcomeComponent },
{
path: 'online/projects',
loadChildren: './projects/project.module#ProjectModule',
data: { online: true},
canLoad: [RequireAuthenticatedUserRouteGuardService]
},
{
path: 'offline/projects',
loadChildren: './projects/project.module#ProjectModule',
data: { online: false}
},
{
path: 'departments',
loadChildren: './departments/department.module#DepartmentModule'
},
},
{ path: '**', component: PageNotFoundComponent }
];
@NgModule({
imports: [RouterModule.forRoot(routes, {
scrollPositionRestoration: 'enabled',
enableTracing: true,
preloadingStrategy: PreloadAllModules
})],
exports: [RouterModule]
})
Затем в project.module.ts ...:
const projectRoutes: Routes = [
{ path: '', component: ProjectsTableComponent },
{ path: ':projectId', component: ProjectDetailComponent },
];
@NgModule({
imports: [
RouterModule.forChild(projectRoutes),
],
затемв Department.module.ts у меня есть ...
const departmentRoutes: Routes = [
{ path: 'department/:deptId', component: DepartmentDetailComponent }
];
@NgModule({
imports: [
RouterModule.forChild(departmentRoutes),
]
})
И это работает.
Однако, это не идеально.Я заставил его работать, добавив НЕ желаемый дополнительный 'отдел /' к моему пути маршрута отдела.Если бы я создал таким образом файл отдела.модуль ...
const departmentRoutes: Routes = [
{ path: ':deptId', component: DepartmentDetailComponent }
];
@NgModule({
imports: [
RouterModule.forChild(departmentRoutes),
]
})
... Этот URL ...
https://localhost:9999/departments/3694
трактуется так, как если быэто было это ...
https://localhost:9999/offline/projects/3694
Однако с моим клуджем на месте, этот URL ...
https://localhost:9999/departments/department/3694
разрешается правильно.ХОРОШО.Так что это обходной путь.Но это не кажется правильным, что это должно быть необходимо.Есть мысли об этой бедной душе?Что-то я делаю не так?