Я пытаюсь реализовать маршрутизацию на основе ролей для моего корневого URL. Например, когда пользователь вошел в систему, я могу перенаправить его на страницу панели управления пользователя с login.component. То же самое применимо к администратору, также перенаправление на страницу панели управления администратора через логин. Но как перенаправить на конкретную панель управления с помощью роли, если пользователь открывает корневой URL-адрес?
В настоящее время мой корневой маршрут указывает на компонент приборной панели, который анализирует роли и перенаправляет на желаемую страницу приборной панели, пользователя или администратора. Есть ли способ удалить компонент приборной панели?
AppRouting.ts
export const AppRoutes: Routes = [
{
path: '',
redirectTo: 'dashboard',
pathMatch: 'full'
},
{
path: '',
component: AdminLayoutComponent,
canActivate: [AuthGuard],
canLoad: [AuthGuard],
children: [
{
path: 'dashboard',
loadChildren: './dashboard/dashboard.module#DashboardModule'
},
DashboardRouting.ts
export const DashboardRoutes: Routes = [
{
path: '',
component: DashboardRedirectComponent,
},
Тестовый компонент DashboardRedirect:
export class DashboardRedirectComponent implements OnInit, AfterViewInit {
constructor(private auth: AuthenticationService, private router: Router) {
let currentUser = JSON.parse(localStorage.getItem('currentUser'));
if (this.auth.loggedIn()) {
if (currentUser['role'] == 'User') {
this.router.navigate(['/dashboard/user']);
}
if (currentUser['role'] == 'Admin') {
this.router.navigate(['/dashboard/admin']);
}
}
}
Я пытался реализовать это с помощью охранников и даже решателя, но не вышло. Когда я открываю корневую страницу своего приложения, оно переходит на панель инструментов и через несколько секунд переходит на соответствующую страницу панели инструментов, но я хотел бы сразу перейти к пользователю и без дополнительных компонентов для этого. Любое предложение ?