javascript – 如何在AngularJS ui-grid中更改网格时收到通知?

前端之家收集整理的这篇文章主要介绍了javascript – 如何在AngularJS ui-grid中更改网格时收到通知?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如果在ui-grid中有一种方法我可以知道网格是否已完成更新行?(就像正在应用过滤器等)?我想在网格视图更改后运行一些函数.

我尝试了以下方法

$scope.filteredRows = $scope.gridApi.core.getVisibleRows($scope.gridApi.grid);

$scope.$watch('filteredRows',function(){console.log('view updated');});

当网格刚刚完成启动时,上述方法有效,之后,它将不再起作用.

我也尝试过使用filterChanged api:

$scope.gridApi.core.on.filterChanged($scope,function() {
    console.log('filter changed');
    foo();
});

这种方法的问题在于虽然我可以在更改过滤器时收到通知,但是如果网格非常大,则需要一些时间来完成视图更新,在此之前,函数foo()在调用之前被调用.网格更新完成.

任何想法将不胜感激.

解决方法

我见过使用$scope.grid.api.core.on.rowsRendered($scope,$scope.col.updateAggregationValue);在ui-grid-footer-cell.js中.我不确定rowsRendered何时触发,但鉴于它被用于计算聚合和聚合,每当行更改时都需要知识,并且必须在rowsProcessors完成运行后运行,很有可能它就是你想要的.

编辑:使用它的框架将是:

>定义可见行更改时要调用函数

var myFunction = function(){
做一些事情
};
>设置此函数以在呈现行时调用

$scope.gridApi.core.on.rowsRendered($scope,myFunction);

猜你在找的JavaScript相关文章