我正在构建一个使用ngrx / store进行状态管理的angular应用程序,并且其中有一个用户对象作为状态的一部分。
用户类别
export class User {
constructor (
public email: string
) {}
get is_signed_in(): boolean {
return this.email !== '';
}
}
export class User {
constructor (
public email: string
) {}
get is_signed_in(): boolean {
return this.email !== '';
}
}
AuthGuard:
export class AuthGuard implements CanActivate {
private user$: Observable<User>;
constructor(
private service: UserService,
private router: Router
) {
this.user$ = service.user$;
}
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
return Observable.create((observer: NextObserver<boolean>) => {
this.user$.subscribe((user: User) => {
console.log('authguard', user);
console.log('authguard', user.email);
console.log('user.is_signed_in', user.is_signed_in);
if (!user.is_signed_in) {
console.log('redirecting to signin page');
this.router.navigate(
['user', 'signin'],
{
queryParams: {
url: state.url
}
}
);
}
observer.next(user.is_signed_in);
observer.complete();
});
});
}
}
,但是在authguard类中,user.is_signed_in属性未定义。为什么?