В моем приложении, когда пользователь авторизован, выбрасывает его в / cabinet / news / ..., но нужно перенаправить его на другой URL в зависимости от роли. Я написал распознаватель, но у меня есть ошибка. Uncaught (в обещании): Ошибка: невозможно сопоставить ни один маршрут. Сегмент URL: «admin». Файл app.routing.ts:
const appRoutes: Routes = [
{ path: '', pathMatch: 'full', redirectTo: 'cabinet' },
{
path: 'auth',
loadChildren: () => import('./modules/auth/auth.module').then(m => m.AuthModule),
},
{
path: 'cabinet',
loadChildren: () => import('./modules/cabinet/cabinet.module').then(m => m.CabinetModule),
canLoad: [AuthGuard],
},
];
Моя кабина inet .routing.ts Файл:
const cabinetRoutes: Routes = [
{ path: '', redirectTo: 'news', pathMatch: 'full' },
{ path: '', component: LayoutComponent, resolve: [CabinetResolver], children: [
{ path: 'news', loadChildren: () => import('./modules/news/news.module').then(m => m.NewsModule) },
{ path: 'analytics', loadChildren: () => import('./modules/analytics/analytics.module').then(m => m.AnalyticsModule) },
{ path: 'declaration', loadChildren: () => import('./modules/declaration/declaration.module').then(m => m.DeclarationModule) },
{ path: 'directory', loadChildren: () => import('./modules/directory/directory.module').then(m => m.DirectoryModule) },
{ path: 'documents', loadChildren: () => import('./modules/documents/documents.module').then(m => m.DocumentsModule) },
{ path: 'reestr', loadChildren: () => import('./modules/reestr/reestr.module').then(m => m.ReestrModule) },
{ path: 'orgInformation', loadChildren: () => import('./modules/org-information/org-info.module').then(m => m.OrgInfoModule) },
{ path: 'dashboard', loadChildren: () => import('./modules/dashboard/dashboard.module').then(m => m.DashboardModule) },
{ path: 'admin', loadChildren: () => import('./modules/admin/admin.module').then(m => m.AdminModule) },
],
},
];
Мой преобразователь:
export class CabinetResolver implements Resolve<any> {
constructor( private router: Router,
private authService: AuthService) { }
resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<any> {
const user: UserModel = this.authService.getUserValue;
if (user.role == 'ADMIN') {
this.router.navigate(['/admin']);
return;
}
}
}