Я пытаюсь установить sh связь между компонентами с помощью наблюдаемых и Тема .
Это мой сервис.
CommonService
private style = new Subject<string>();
getStyle(): Observable<any> {
return this.style.asObservable();
}
updateStyleArray(styleToApply) {
this.style.next(styleToApply);
}
Компонент, в котором я пытаюсь подписаться методом getStyle (), имеет следующий код внутри конструктора.
BottomBar
this.commonService.getStyle().subscribe(style => {
console.log('I am firing in order not to be fired!!!');
});
Компонент, в котором я вызываю метод next () , имеет следующий код.
Боковая панель
this.commonService.updateStyleArray('This is the name of a style');
I упростили код до минимума, но он все еще не запускает функцию subcribe () .
----> Stackblitz
Решение и ПРИМЕЧАНИЕ
Вышеупомянутая техника работает как шарм, чтобы установить sh связь между компонентами. Ошибка была вызвана тем, что app-bottom-bar был реализован с ngIf*
, а конструктор не был вызван *, поэтому функция подписки не была вызвана.
*<app-bottom-bar *ngIf="isBottomBarVisible"></app-bottom-bar>
.