我正在使用mat-table列出内容任务。我还可以使用对话框面板添加新评论。在我添加评论并返回后,我希望我的数据源刷新以显示他们所做的更改。
private update(value: any, id: string): void {
this.dataService.updateCommentaire(id,value)
.subscribe(
data => {
this.dataService
.getTachesByDossierAndSite(this.idDossier, this.idSite)
.subscribe(
data => {
this.taches = data;
this.dataSource = new MatTableDataSource(this.taches);
this.dataSource.paginator = this.paginator;
this.dataSource.sort = this.sort;
});
this.successMessage = "La mise à jour a été effectuée avec succès.";
this._success.subscribe((message) => this.successMessage = message);
debounceTime.call(this._success, 5000).subscribe(() => this.successMessage = null);
}
);
}
所以我试着调用一个刷新方法,我从后端再次获取任务,然后重新初始化数据源:(任何帮助请在将数据添加到数据源后刷新mat-table !!
答案 0 :(得分:1)
您可以使用新数据变量更新全局数据源,替换数据设置。
例如你的全局变量:
public dataSource: MatTableDataSource<any[]> = new MatTableDataSource([]);
要更新其数据,您只需替换数据变量:
const data = [...this.dataSource.data];
this.dataService
.getTachesByDossierAndSite(this.idDossier, this.idSite)
.subscribe(
data => {
this.taches = data;
this.dataSource.dataSource.data = data;
this.dataSource.paginator = this.paginator;
this.dataSource.sort = this.sort;
});