UI网格过滤

时间:2017-04-07 14:57:59

标签: angular-ui-grid

我有以下场景:我获取UI网格的数据,并显示它能够切换标题过滤器。稍后我需要再次请求数据并且还能够切换过滤器。我的代码只在第一次工作。在我再次请求数据后(基本上重新创建我最初设置表格的操作),过滤器不再起作用。我创建了一个说明这个http://plnkr.co/edit/KQbkGZQnjxCFTrS4Elgh?p=preview的plunker:点击切换过滤按钮 - 看过滤器确定。然后按:再次请求数据 - 过滤器不再有效。我怀疑onRegisterApi方法只被调用一次,虽然我不确定它是不是。任何帮助赞赏。

 $scope.toggleFiltering = function(){
    $scope.gridOptions.enableFiltering = !$scope.gridOptions.enableFiltering;
    $scope.gridApi.core.notifyDataChange( uiGridConstants.dataChange.COLUMN );
  };

2 个答案:

答案 0 :(得分:2)

再次请求数据时,您不必重新初始化gridOptions。从你的plnkr中删除它固定它。因此,您的requestDataAgain函数将如下所示:

$scope.requestDataAgain = function(){

  $http.get('https://cdn.rawgit.com/angular-ui/ui-grid.info/gh-pages/data/500_complex.json')
.success(function(data) {
  $scope.gridOptions.data = data;
  $scope.gridOptions.data[0].age = -10;

  data.forEach( function addDates( row, index ){
    row.mixedDate = new Date();
    row.mixedDate.setDate(today.getDate() + ( index % 14 ) );
    row.gender = row.gender==='male' ? '1' : '2';
  });

});

};

Here是更新的plnkr。

答案 1 :(得分:1)

看看这是否适合您。 您在$ scope.requestDataAgain上再次调用$ scope.gridOptions,但这不是必需的。

  $scope.requestDataAgain = function(){
$http.get('https://cdn.rawgit.com/angular-ui/ui-grid.info/gh-pages/data/500_complex.json')
.success(function(data) {
  $scope.gridOptions.data = data;
  $scope.gridOptions.data[0].age = -5;

  data.forEach( function addDates( row, index ){
    row.mixedDate = new Date();
    row.mixedDate.setDate(today.getDate() + ( index % 14 ) );
    row.gender = row.gender==='male' ? '1' : '2';
  });

});

};

Optimize and Google Tag Manager