通过更改 .filteredData 属性来更新 mat-table 内容



UPDATE: $scope.$apply((; 似乎是正确的方法,但我使用的是 Angular6...我将如何实现相同的功能?

我目前正在尝试以特定方式更新表。我不希望通过.filter属性、自定义管道等来实现这一点,而是想直接将我希望显示的数据分配给dataSource的属性。

我尝试将dataSource.filteredData分配给我希望显示的数据。但是,即使dataSource.filteredData更新,该表也无法反映此类更改。

我是否更改了正确的变量?如何通过直接编辑dataSource的属性(即通过.filteredData(来更新可查看的表内容?

希望这是有道理的,如果没有,请问!

如果问题是关于angularjs的,我建议你使用$scope.$apply()这将强制更新手表和摘要周期。

将数据设置为dataSource.filteredData呼叫$scope.$apply();

编辑:

由于您在打字稿中使用 angular,因此您可以对detectChanges()执行相同的操作

分配数据后,只需调用,

chRef.detectChanges(); 

你可以在这里阅读我的答案

根据我搜索的内容,相当于 Angular 2+ 中的$scope.$apply()是这样做的:

import { ChangeDetectorRef } from 'angular/core';
constructor(private chRef: ChangeDetectorRef){
}

然后使用:

chRef.detectChanges(); // whenever you need to force update view

使用dataSource.filteredData设置数据后。

最新更新