Сервис MyService
private ck = new BehaviorSubject(false);
public setCk(val: boolean): void {
this.ck.nex(val);
}
public getCk(): Observable<boolean> {
return this.ck.asObservable();
}
// можно оформить как аксессоры, но так наглядней
В компонентах
private subs = new Subscription();
public ck: boolean;
constructor(private service: MyService) {}
ngOnInit() {
const s0 = this.service.getCk().subscribe(ck => this.ck = ck); // тут можно добавить какие-то действия при изменении данных
this.subs.add(s0);
}
ngOnDestroy() {
this.subs.unsubscribe();
}
Ну и при изменении поля делаешь this.service.setCk(...)
Так же, при получении данных в реактивной форме из сервиса иногда требуется вручную дернуть detectChanges
ngRx.store еще можно посмотреть и async пайп