Я работаю над angular приложением, которое имеет следующие URL-пути ,
- / (root)
- / курсы
- / курсы / создать
- / курсы /: id
- / auth / login
Я добавил AuthGuard для всех маршруты кроме auth/login
. AuthGuard
перенаправляет на auth\login
, если не аутентифицирован.
app-routing.module.ts
export const Approutes: Routes = [
{
path: '',
canActivate: [AuthGuard],
component: FullComponent,
loadChildren: () => import('./pages/pages.module').then(m => m.PagesModule) // loading from pages-routing.ts
},
{
path: 'auth',
component: PlainComponent,
children: [
{
path: '',
pathMatch: 'full',
redirectTo: 'login'
},
{
path: 'login',
component: LoginComponent
}
]
},
{
path: '**',
redirectTo: ''
}
];
pages-routing.ts
export const PagesRoutes: Routes = [
{
path: '',
children: [
{
path: '',
pathMatch: 'full',
redirectTo: 'courses'
},
{
path: 'courses',
component: CourseMainPageComponent,
data: {
title: 'My Courses'
}
},
{
path: 'courses/create',
component: CourseCreatePageComponent,
data: {
title: 'Create Course'
}
},
{
path: 'courses/:id',
component: CourseShowPageComponent,
data: {
title: 'Course Detail'
}
},
]
}
];
Проблема
Все маршруты и authGuard работает нормально. Но , когда я ввожу root URL \
, мне нужно было перенаправить на \courses
, но он не работает. Также в root URL \
AuthGuard не перенаправляет me на auth\login
даже.
ПРИМЕЧАНИЕ Не знаю не возникает ошибка во время выполнения или компиляции.