我想实现典型的登录/注册设置:
现在,我正在使用看起来像这样的设置:
@Injectable()
export class LoggedInGuard implements CanActivate, CanActivateChild {
canActivate(...): boolean {
if (Meteor.userId() != null) {
return true;
}
this.router.navigate(['/login']);
return false;
}
canActivateChild(...): boolean {
return this.canActivate(childRoute, state);
}
}
我放入了我的路线,我放了{path: 'app', component: TasksListComponent, canActivate: [LoggedInGuard]}
。但是,这并不会阻止用户在登录时访问登录/注册页面。我想知道是否有更好的方法来执行此操作,而无需创建另一个单独的Injectable。
**注意 - 我没有使用Iron Router,我正在使用@ angular / router
答案 0 :(得分:2)
如果用户登录,您可以将用户重定向到其他组件。把它放在第一个ngOnInit()。
ngOnInit() {
//*** checking if user is already login if login redirect to someother page based on your custom condition
if (Meteor.userId()) {
this._router.navigate(['otherpage']);
}
}