Angular从服务中获取可观察的数据

时间:2019-04-18 16:33:24

标签: angular

使用角度,我有一个网格,用户可以在其中单击复选框来选择数据。我将选择存储在数组中。

下面是选择复选框的代码

getCheckedItemList() {
  let selectedData: any[];

 //loop through array of data, find selected and populate selectedData array.

 //Below line sets selected data to the service
  this.myService.setSelectedData(this.selectedData); 

}

以下是该服务:

  export class MyService {
  public selectedData = new Subject<any[]>();
  public selectedDataObservable = this.selectedData.asObservable();

  setSelectedData(data: any[]) {    
    this.selectedData.next(data);    
  }
}

上面的代码都可以正常工作。

我遇到的问题是如何从服务中获取保存的数据。

我试图做类似的事情:

 this.myService.selectedData

但这不起作用。

谁能指出我如何获取数据?

谢谢

1 个答案:

答案 0 :(得分:1)

您可以更改服务以将BehaviorSubject用作

 export class MyService {
 public selectedData = new BehaviorSubject<any>();
 public selectedDataObservable = this.selectedData.asObservable();

 setSelectedData(data: any[]) {    
    this.selectedData .next(data);    
  }
}

您可以通过以下方式获得此值:

this.myService.selectedData.value