CanLoad guard не допускает маршрут '/' - PullRequest
0 голосов
/ 13 февраля 2019

Мой план состоял в том, чтобы создать проект, в котором основной веб-сайт, который находится на "/", довольно загружен и загружается только после фактического входа в систему.

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

1 Ответ

0 голосов
/ 13 февраля 2019

EDIT: переместить маршрут 'login' на первую позицию в массиве.

...