В следующий раз опубликуйте немного кода. Поскольку нет, я покажу вам, как это сделать на примере.
Давайте предположим, что у нас есть два компонента, A и B. И изменения будут отражены на обоих компонентах.
Сервис:
export class YourService{
private data$ = new BehaviorSubject<string>(null);
data = this.data$.asObservable();
public setData(data: string){
this.data$.next(data);
}
}
Компонент A / B.html:
<div>{{something}}</div>
Компонент A / B.ts:
isAlive = true;
something: string;
constructor(
private service: YourService
) { }
ngOnInit(){
this.service.data
.takeWhile(() => this.isAlive)
.subscribe( res => {
if(!!res){
this.something = res;
}
});
}
ngOnDestroy(){
this.isAlive = false;
}
Компонент, который изменяет статус:
export class AnotherComponent{
constructor(
private service: YourService
) { }
private changeData(data: string){
this.service.setData(data);
}
}
Теперь все работает нормально. BehaviorSubject
разрешить связь между компонентами. всякий раз, когда функция changeData
запускается, вы увидите изменения на обоих ваших компонентах.
takeWhile
для отмены подписки, когда компонент умирает.
Если у вас есть дополнительные вопросы, не стесняйтесь задавать их мне, и я отредактирую этот ответ.