Ton*_*ony 6 javascript angularjs angular-ui-grid
如果在ui-grid中有一种方法我可以知道网格是否已完成更新行?(就像正在应用过滤器等)?我想在网格视图更改后运行一些函数.
我尝试了以下方法:
$scope.filteredRows = $scope.gridApi.core.getVisibleRows($scope.gridApi.grid);
$scope.$watch('filteredRows', function(){console.log('view updated');});
Run Code Online (Sandbox Code Playgroud)
当网格刚刚完成启动时,上述方法有效,之后,它将不再起作用.
我也尝试过使用filterChangedapi:
$scope.gridApi.core.on.filterChanged($scope, function() {
console.log('filter changed');
foo();
});
Run Code Online (Sandbox Code Playgroud)
此方法的问题在于虽然我可以在更改过滤器时收到通知,但是如果网格非常大,则需要一些时间来完成视图更新,在此foo()之前,在网格更新之前调用该函数完了.
任何想法将不胜感激.
Pau*_*ulL 11
我见过$scope.grid.api.core.on.rowsRendered( $scope, $scope.col.updateAggregationValue );在ui-grid-footer-cell.js中的使用.我不确定rowsRendered何时触发,但鉴于它被用于计算聚合和聚合,每当行更改时都需要知识,并且必须在rowsProcessors完成运行后运行,很有可能它就是你想要的.
编辑:使用它的框架将是:
定义在可见行更改时要调用的函数
var myFunction = function() {
do some stuff
};
设置此函数以在呈现行时调用
$scope.gridApi.core.on.rowsRendered( $scope, myFunction );
| 归档时间: |
|
| 查看次数: |
13752 次 |
| 最近记录: |