2017-04-07 150 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。