如何在向数据源添加数据后刷新mat-table?

时间:2018-05-07 16:55:34

标签: angular

我正在使用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 !!

1 个答案:

答案 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;
        });