簡體   English   中英

通過 Angular 中的服務在兩個子組件(兄弟組件)之間共享數據

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM