如何在不执行角度6刷新页面的情况下刷新执行动作的表格?

时间:2019-02-04 10:55:26

标签: angular angular6

页面重新加载后,我可以在表中获取更新的数据。但是我应该在不重新加载页面的情况下获取表中的数据。请在下面找到我的代码。

我正在编写一个用于批准表中实体的函数。因此,我正在调用更新实体API。成功响应后,我试图再次获得该表。但是如果不刷新页面就不会发生。

  this.es.updateEntity(data).subscribe(r => {
     this.entity = r;
     this.APIgetAllEntity();   //Calling my api function to reload the table
  })

2 个答案:

答案 0 :(得分:0)

根据我对您问题的理解,如果我错了,请更正我,您需要在编辑表中的行后使用数据更新表。

我认为您有两种方法可以解决此问题:

  1. 首先,您只能更新已更改的行。
  2. 第二,您可以更新整个表格。

第一种方法:

  1. 您将需要从html传递行的索引,以便可以在.ts文件中对其进行更新。

然后,您将需要具有返回该单个用户数据的api,或者我想做的是拥有将更新用户的api以返回更新的数据,因此您无需调用任何api。 在您的ts中:

updateUser(id, index){
    this.userServiice.update(id, payload).subscribe((res: any) => {
        this.users[index] = res;
    })
}

第二种方法: 您只需调用返回用户(整个数组)的api,然后将响应分配给users数组即可。

答案 1 :(得分:0)

ngonint仅运行一次

因此,如果您要在ngoninit上创建新的MatDataSource,它将永远不会更新

使用if changes.userData查看ngchange,以确保它不只是每个周期都更改数据。