Я создал 2 компонента и один сервис, как показано ниже,
component-взаимодействия.service.ts
@Injectable()
export class ComponentInteractionService {
public dataSubject = new BehaviorSubject<string>("Test");
getTestData(): Observable<any> {
return this.dataSubject.asObservable();
}
pustTestData(dataToPush: string): void {
this.dataSubject.next(dataToPush);
}
}
first.component.ts
export class FirstComponent {
constructor(private componentInteractionService: ComponentInteractionService) {
componentInteractionService.getTestData().subscribe(data=> {
console.log("Received at 1 -- " + data);
});
}
sendTestData(): void {
this.componentInteractionService.pustTestData("sending data from 1");
}
}
second.component.ts
export class SecondComponent {
constructor(private componentInteractionService: ComponentInteractionService) {
componentInteractionService.getTestData().subscribe(data=> {
console.log("Received at 2 -- " + data);
});
}
}
Проблема, с которой я сейчас сталкиваюсь,
При загрузке страницы запускаются оба подписчика компонентов, но когда я отправляю данные с помощью sendTestData () метод в FirstComponent , только подписчик в FirstComponent запускается.Абонент в SecondComponent не запускается.Что я должен сделать для обоих подписчиков, чтобы инициировать отправку данных с помощью метода sendTestData () ?
Журналы моей консоли приведены ниже.
Получено в 1 - Тест
Получено в 2 - Тест
Получено в 1 - отправка данных из 1
Ожидаемый вывод ..
Получено в 1 - тест
Получено в 2 - тест
Получено в 1 - отправка данных от 1
Получено в 2 - отправка данных от 1