Это не так, как в Angular (или Typescript).
constructor()
для внедрения зависимостей. UpdateDataService - это Singleton, внедренный в корневой компонент приложения. Когда вы вводите его, ** FilmComponent **, вероятно, не инициализируется.
Лучше внедрить эту службу в компонент и в службу, используя Subject или BehaviourSubject, которые выдают значения при их изменении в функциях.
В эксплуатации:
surUsrAvtr = new BehaviourSubject<any>();
showElse = new BehaviourSubject<any>();
updateWhenAuthorized() {
console.log('user_authorized');
this.app.current_user_avatar = this.user.getUSer().Avatar;
this.app.user_authorized = true;
this.app.show_favorite = true;
this.app.IsAutentification = false;
this.surUsrAvtr.next(this.user.getUSer().Avatar);
this.showElse.next(false);
}
updateWhenLogout() {
console.log('user_logout');
this.app.user_authorized = false;
this.app.show_favorite = false;
this.showElse.next(true);
}
А в компоненте подписывайтесь на такие:
export class FilmComponent implements OnInit {
urrent_user_avatar: any;
showElseNeedLoginForCommentBlock: any;
constructor(private upDataService: UpdateDataService) {}
ngOnInit() {
this.upDataService.surUsrAvtr.subscribe(_ => this.urrent_user_avatar = _);
this.upDataService.showElse.subscribe(_ => this.showElseNeedLoginForCommentBlock = _);
}
}
То же самое относится и к AppComponent