Мой план состоял в том, чтобы создать проект, в котором основной веб-сайт, который находится на "/", довольно загружен и загружается только после фактического входа в систему.
const routes: Routes = [
{ path: '', canLoad: [AuthGuard], loadChildren: './home/home.module#HomeModule' },
{ path: 'login', component: LoginComponent },
{ path: '**', redirectTo: '/' },
];
Но CanLoad, похоже, имеет это ограничениечто это не работает для '/', потому что происходит следующее: приложение застревает в бесконечном цикле.CanLoad имеет встроенную функцию автоматического перенаправления на «/», когда canLoad запрещен, даже если вы поставили перенаправление на «/ login», когда «false».
Временное решение, которое у меня есть, - не использовать ''root как маршрут и вместо этого назовите его «/ home» или как-то еще, но это добавит / home / перед каждым маршрутом приложения.
CanActivate guard работает с этой настройкой, но тогда, конечно, я не наденувы не получите преимущества от отложенной загрузки, поскольку полное приложение (home /) будет загружено в любом случае, даже если пользователь только застрянет на экране / login.
Related:
https://github.com/angular/angular/issues/16197
https://github.com/angular/angular/issues/24715