Angular 2 Отложенная загрузка дочерних маршрутов не работает

#angular #lazy-loading

#angular #отложенная загрузка

Вопрос:

Моя реализация выглядит следующим образом:

Маршруты приложений :

 export const AppRoutes: Routes = [
    {
    path: 'external',
    loadChildren: './_Layouts/external-layout/external-layout.module#ExternalLayoutModule'
  }]
 

внешние маршруты:

 export const ExternalRoutes: Routes = [
  { path: '', component: ExternalComponent, pathMatch: 'full', canActivate: [AuthGuard] },
  { path: 'programmes', component: ProgrammesComponent, canActivate: [AuthGuard] },
];
 

Проблема заключается в том, что URL-адрес является
localhost: 4200 / external

все работает нормально

Но когда это localhost:4200/programs ИЛИ localhost: 4200/external/programs

Он вообще не работает, чего мне не хватает?

Заранее спасибо!

Ответ №1:

Вы получаете какие-либо ошибки? Какая версия Angular?

Кроме того, я думаю, что в более поздних версиях синтаксис loadChildren выглядит следующим образом:

     loadChildren: () => import('./items/items.module').then(m => m.ItemsModule)
 

Смотрите больше здесь: https://angular.io/guide/lazy-loading-ngmodules

Комментарии:

1. Дорогой Олли, я использую Angular 7, и никакой ошибки нет

2. Вам нужно создать { path: 'programmes', component: ProgrammesComponent, canActivate: [AuthGuard] } дочерний маршрут в вашем модуле маршрутизации из external-layout.module

3. Уважаемый smithnblack, я уже пробовал, но безуспешно

4. Когда я делаю маршруты пустыми, это работает, но мне это не требуется: export const AppRoutes: Routes = [ { path: «, loadChildren: ‘./_Layouts/external-layout/external-layout.module#ExternalLayoutModule’ }]