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
设置数据后。