Можно ли постоянно слушать все изменения в сервисе и передавать эту информацию компоненту?
Я знаю, что могу создать Observable в сервисе, как показано ниже:
@Injectable()
export class LoadingService {
myBool$: Observable<boolean>;
private boolSubject: BehaviorSubject<boolean>;
constructor() {
this.boolSubject = new BehaviorSubject(true);
this.myBool$ = this.boolSubject.asObservable();
}
set myBool(newValue) {
console.log("set",newValue)
this.boolSubject.next(newValue);
}
}
Я также знаю, что у меня может быть компонент или директива (как показано ниже), чтобы подписаться на наблюдаемое, чтобы получать уведомления об изменениях.
@Directive({
selector: '[loading]'
})
export class LoadingDirective implements AfterViewInit {
constructor(
private element: ElementRef,
private renderer: Renderer2,
private loadingService: LoadingService
) {
this.loadingService.myBool$.subscribe(response => {
console.log("-----",response)
})
}
Но я получаю только первое изменение служебной переменнойв subscribe
.Как я могу получить все будущие изменения (например, EventListener)?
Спасибо за вашу помощь!