У меня проблема с реализацией отложенной загрузки, которая вызывает у меня массу разочарований.Я в настоящее время лениво загружаю два модуля, как показано ниже в моем 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
}
любая помощь будет чрезвычайно признательна