Angular Router не перенаправляет истинный компонент - PullRequest
0 голосов
/ 04 июня 2019

У меня есть 2 модуля маршрутизации: app-routing и landlord-routing , и у меня есть компонент панели мониторинга для перенаправления каждой роли на свой компонент. Когда я добавляю NotFouldComponent , он всегда отображает эту страницу 404, но когда я комментирую эту строку (NotFouldComponent), она работает, я могу перенаправить на истинный компонент. Можете ли вы помочь мне исправить эту ошибку?

В модуле маршрутизации приложений:

const routes: Routes = [
    { path: '',   redirectTo: '/dashboard', pathMatch: 'full' },
    { path: 'dashboard', component: DashboardComponent },
    { path: '**', component: NotFoundComponent}
];

В модуле маршрутизации домовладельцев:

const LandlordChildRouters: Routes = [
    {
        //path: 'landlord/dashboard', component: LandlordComponent 
        path: 'landlord',
        component: LandlordComponent,
        canActivate: [AuthGuard], data: { roles: [Role.Lanlord] },
        children: [
            {
                path: 'dashboard',
                component: LandlordDashboardComponent
            },
            {
                path: 'profile',
                component: LandlordProfileComponent
            }
        ]
    }
];

В dashboardComponent, чтобы получить роль пользователя, затем перенаправить:

get isLandlord() {
    return (this.currentUser && this.currentUser.role === Role.Lanlord);
}

get isTenant() {
    return (this.currentUser && this.currentUser.role === Role.Tenant);
}

deleteDataInLocal() {
    this.authenticationService.logout();
}

ngOnInit() {
    if(this.isLandlord){
        this.router.navigate(['/landlord/dashboard']);
    }
    else if(this.isTenant){
        this.router.navigate(['/tenant/dashboard']);
    }
    else{
        console.log("delete")
        this.deleteDataInLocal();
        this.router.navigate(['/login']);
    }
}

1 Ответ

0 голосов
/ 05 июня 2019

Попробуйте, чтобы увидеть, работает ли

{ path: '**', redirectTo: '/notfound', pathMatch: 'full' },
{ path: 'notfound', component: NotFoundComponent, pathMatch: 'full' }
...