[英]Share data between two child components(sibling components) through a service in Angular
子組件 1
我有一個日期選擇器字段,它將用作過濾器來獲取結果並將其顯示在Child Component 2中。 同時,我創建了一個服務並將子組件 1 的數據共享到該服務。
子組件 2
我可以訂閱ngOnInit()
方法上的數據。
我的期望:
但是由於這個日期選擇器經常更改以過濾結果,我想在ngOnInit()
之外的子組件 2中訂閱它,即我想訂閱實時數據。
注意:父組件中沒有進行任何代碼更改
子組件 1.ts
shareDate(fromDateEvent){
const fromDate = fromDateEvent.target.value;
this.sharedService.updateFilterDate(fromDate);
}
服務.ts
private filterDate = new BehaviorSubject<string>(null);
get filterDate$(): Observable<string> {
return this.filterDate.asObservable();
}
updateFilterDate(fromDate: string): void{
this.filterDate.next(fromDate);
}
子組件 2
this.sharedService.updateFilterDate.subscribe(dateValue => this.fromDate = dateValue);
在子組件 2 中進行此更改
this.sharedService.filterDate$().subscribe(dateValue => this.fromDate = dateValue);
您必須訂閱observable才能獲取數據流。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.