Я создаю приложение на angular, которое использует ngrx / store для управления состоянием, и в нем есть пользовательский объект как часть состояния.
Класс пользователя </p>
<pre><code>export class User {
constructor (
public email: string
) {}
get is_signed_in(): boolean {
return this.email !== '';
}
}
AuthGuard: </p>
<pre><code>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 не определено.Почему?