2017-04-07 88 views
0

我有以下情形:我获取UI网格的数据并显示它以切换标题过滤器的能力。过了一段时间,我需要再次请求数据,并且能够切换过滤器。我的代码只在第一次运行。在我再次请求数据(基本上重新创建我最初设置表格的操作)后,过滤器不再起作用。我已经创建了一个说明这个http://plnkr.co/edit/KQbkGZQnjxCFTrS4Elgh?p=preview的活动者:点击切换过滤按钮 - 看到过滤器确定。然后再次按下:请求数据 - 过滤器不再起作用。我的怀疑是只有一次调用RegisterApi方法,虽然我不确定是否就是这样。任何帮助赞赏。UI网格过滤

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

回答

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'; 
    }); 

}); 

};

Updated plnkr

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。