3.0.0-rc.1
을 사용하는 각도 2 라우터와 관련하여 작은 질문이 있습니다. AdminComponent 또는 UserComponent와 같은 사용자 역할을 기반으로 다른 홈 구성 요소로 이동하려고합니다. 누구든지 원하는 기능을 얻을 수 있도록 경로를 수정하는 데 도움을 줄 수 있습니까?각도 2 역할 기반 탐색 동일한 경로에서
{path: 'login', component: LoginComponent}, // <--- This redirects to '/' in case user is logged in
{
path: '',
component: HomeComponent,
canActivate: [AuthGuardService], // <--- Check if user is logged in, else redirect to login
children: [
{
path: '',
component: AdminComponent // <--- Want to navigate here if user role is 'admin'
},
{
path: '',
component: UserComponent // <--- Want to navigate here if user role is 'user'
}
]
}
AuthGuardService.ts
import {Injectable} from "@angular/core";
import {CanActivate, Router, ActivatedRouteSnapshot, RouterStateSnapshot} from "@angular/router";
import {AuthService} from "./auth.service";
@Injectable()
export class AuthGuardService implements CanActivate {
constructor(private authService: AuthService, private router: Router) {
}
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
if (this.authService.isLoggedIn()) {
return true;
}
// Store the attempted URL for redirecting
this.authService.redirectUrl = state.url;
// Navigate to the login page with extras
this.router.navigate(['/login']);
return false;
}
}
AuthService.ts
import {Injectable} from "@angular/core";
@Injectable()
export class AuthService {
redirectUrl: string;
logout() {
localStorage.clear();
}
isLoggedIn() {
return localStorage.getItem('token') !== null;
}
isAdmin() {
return localStorage.getItem('role') === 'admin';
}
}
감사합니다.
router.navigate(['/user'])
당신이 그것을 알아낼 않았다 않는 구성 요소 다음에 LOGES 한 번 사용자 역할을 확인하여 올바른 경로로 리디렉션? – Dmitry@Dmitry no luck yet – Ankush