Компоненты Angular 6 Lazy Loaded не отображаются - PullRequest
0 голосов
/ 10 июня 2018

У меня проблема с реализацией отложенной загрузки, которая вызывает у меня массу разочарований.Я в настоящее время лениво загружаю два модуля, как показано ниже в моем app-routing.module.ts:

{
  path: 'home',
  loadChildren: './general/general.module#GeneralModule'
},
{
  path: 'admin',
  canLoad: [AdminGuard],
  loadChildren: './admin/admin.module#AdminModule'
},
{
  path: '',
  redirectTo: '/home',
  pathMatch: 'full'
},
{
  path: '**',
  component: PageNotFoundComponent
}

общий модуль загружается нормально, и я могу перейти ко всем компонентам в этом модуле.вот эта настройка маршрутизации:

{
  path: 'login',
  component: LoginComponent,
  canActivate: [CanActivateLogin]
},
{
  path: 'manage-account',
  component: ManageAccountComponent,
  canActivate: [CanActivateLogin]
},
{
  path: 'register',
  component: RegisterComponent,
  canActivate: [CanActivateLogin]
},
{
  path: '',
  component: HomepageComponent
}

при попытке получить доступ к модулю администратора, я правильно попал в защиту CanLoad, и она возвращает истинное значение:

@Injectable()
export class AdminGuard implements CanLoad {
constructor(
  private store: Store<AppState>
) { }

canLoad(route: Route): boolean | Observable<boolean> | Promise<boolean> {
return this.store.select(userSelectors.getUserAccessLevel).pipe(
  map(access => access === ROLE_SYSTEM_ADMIN)
  );
}
}

Я бы предположил, что этоимеет какое-то отношение к настройке моего маршрутизатора администратора, но на данный момент это невероятно просто и все еще не работает:

{
  path: 'manage-users',
  component: ManageUsersComponent
},
{
  path: '',
  component: LandingPageComponent
}

любая помощь будет чрезвычайно признательна

...