маршрутизатор не ведет себя как ожидалось - PullRequest
0 голосов
/ 21 сентября 2018

Итак, у меня 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

разрешается правильно.ХОРОШО.Так что это обходной путь.Но это не кажется правильным, что это должно быть необходимо.Есть мысли об этой бедной душе?Что-то я делаю не так?

1 Ответ

0 голосов
/ 21 сентября 2018

В project.module попробуйте добавить entryComponents: [] ниже импорта.В entryComponents добавьте все компоненты, которые нужно загружать ленивыми

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...