“我有两个组件1.register 2.login。 我有一个本地存储,它将所有用户信息保存在寄存器组件中,我需要从登录组件到主组件验证注册用户,我正在处理角度2如何做到这一点。我将所有用户保存到来自注册组件的本地存储,从登录组件我需要检查用户是否存储在本地存储中,然后导航到主组件。“
答案 0 :(得分:0)
Angular2提供Route Guard
你想要的是CanActivate
<强> routing.ts 强>
export const routes: Routes = [{
path: 'login',
loadChildren: 'app/pages/login/login.module#LoginModule'
}, {
path: 'authorize',
loadChildren: 'app/pages/authorize/authorize.module#AuthorizeModule',
canActivate: [LoginGuard]
}];
<强> login.guard.ts 强>
@Injectable()
export class LoginGuard implements CanActivate {
constructor(
private router: Router,
private authService: AuthService
) { }
canActivate(
next: ActivatedRouteSnapshot,
state: RouterStateSnapshot): Observable<boolean> | Promise<boolean> | boolean {
if (this.authService.isLoggedIn()) {
return true;
} else {
this.router.navigateByUrl('/login');
return false;
}
}
}