【发布时间】:2021-05-19 10:35:12
【问题描述】:
我已经实现了一个 Angular 应用程序,它请求一个项目列表来填充表格。 在我的服务中,我有以下函数从服务器请求项目列表:
requestPostingList(): Observable<Posting[]>
在视图中,表订阅了这个 Observable。
依赖于 Posting-Model 中的状态变量我想轮询服务器以获取更改并更新 Posting[] 中的一些(不是全部)项目。 出于这个原因,我的服务类中有这个功能:
pollPostingState(postingId: string): Observable<Posting>
它每 2 秒在服务器上轮询一次,如果状态变量发生变化,它会发出一个新的发布对象。
我需要某种“合并机制”来更新 Posting[] 的项目。这必须异步完成,所以我不想等待所有民意调查完成。每次轮询请求完成时,我都希望在 UI 中,相应的行会更改/更新。 所以我需要发出一个更新的 Posting[]....
如何使用 RXJS 实现这一点?
提前致谢
编辑: 表如何获取数据:
public dataSource = new MatTableDataSource<Posting>([]);
public ngAfterViewInit(): void {
this.postingService.requestPostingList()
.subscribe(data => this.dataSource.data = data);
}
在 HTML 中,我将 dataSource 绑定到 mat-table
【问题讨论】:
-
您能发布表格如何将数据显示在屏幕上吗?
-
添加了此信息...
-
你怎么打电话给
pollPostingState?每个Posting都需要这样做吗? -
类似
myService.pollPostingState(postingId).subscribe(posting => /* find the posting in this.dataSource.data and update it */)。与mat-table的绑定将进行重新渲染
标签: angular rxjs observable