Я пытаюсь работать с маршрутизатором и ленивой загрузкой в angular 8. Ранее я успешно использовал его в Angular 7.
У меня есть несколько основных маршрутов, которые следующие:
/home
/auth
/auth/login
/auth/signUp
Я бы хотел /auth
перенаправить на /auth/login
, а все остальное перенаправить на /home
.
Для этого мой app-routing.module.ts
выглядит так:
const routes: Routes = [
{
path: '',
redirectTo: '/home',
pathMatch: 'full'
},
{
path: 'auth',
loadChildren: () => import('./modules/auth/auth.module').then(m => m.AuthModule)
},
{
path: 'home',
loadChildren: () => import('./modules/home/home.module').then(m => m.HomeModule)
},
{
path: '**',
redirectTo: '/home',
pathMatch: 'full'
}
];
И мой auth-routing.module.ts
выглядит так:
const routes: Routes = [
{
path: '',
redirectTo: '/auth/login',
pathMatch: 'full'
},
{
path: 'login',
component: LoginComponent
},
{
path: 'signUp',
component: LogoutComponent
}
];
Проблема в том, что он всегда перенаправляет на страницу авторизации и игнорирует другие перенаправления.Пути /login
и /signUp
также доступны на корневом уровне, что является странным, но они также работают, если иметь префикс /auth/login
, что еще более необычно.
Так что по какой-то причине кажется, что маршруты существуют дважды.
Также, когда я добавляю пути в auth-routing.module.ts
с помощью auth/
, внезапно становится возможным указать /auth/auth/login
Я активировал все необходимые функции Angular 8, чтобы заставить плющ и ленивую загрузку работать.Другие маршруты и ленивые модули, которые я определил, работают.