#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’ }]