2016-02-19 39 views
0

我在運行時通過用戶交互設置列過濾器時遇到問題。這裏是我的嘗試:運行時的角度UI網格集濾鏡

http://plnkr.co/edit/Ynesaq5o3HNsF5r8rXQf?p=preview

$scope.setFilter = function() { 
    $scope.gridApi.grid.columns[1].filters[0] = { 
     condition: uiGridConstants.filter.EXACT, 
     placeholder: '', 
     term: 'female' 
    }; 

    $scope.gridApi.core.notifyDataChange(uiGridConstants.dataChange.ALL); 
    $scope.gridApi.grid.refresh(); 
} 

字段設置和術語被添加到現場,但該數據沒有刷新。

任何想法?

回答

2

在原始plunker中,我將useExternalFiltering設置爲true。刪除這個問題解決了我遇到的問題。

var app = angular.module('app', ['ngTouch', 'ui.grid']); 

app.controller('MainCtrl', ['$scope', '$http', '$interval', 'uiGridConstants', function ($scope, $http, $interval, uiGridConstants) { 
    $scope.filterText = 'female'; 
    $scope.gridOptions = { 
    enableFiltering: false, 

    columnDefs: [ 
     { name: 'name', enableFiltering: false }, 
     { name: 'gender' }, 
     { name: 'company', enableFiltering: false} 
    ], 
    onRegisterApi: function(gridApi) { 
     $scope.gridApi = gridApi; 
    } 
    }; 

    $http.get('https://cdn.rawgit.com/angular-ui/ui-grid.info/gh-pages/data/100.json') 
    .success(function(data) { 
    $scope.gridOptions.data = data; 
    }); 

    $scope.setFilter = function() { 
    console.log($scope.gridApi.grid.columns[1]); 
    $scope.gridApi.grid.columns[1].filters[0] = { 
     condition: uiGridConstants.filter.STARTS_WITH, 
     term: $scope.filterText 
    }; 

    $scope.gridOptions.enableFiltering = true 
    $scope.gridApi.grid.refresh(); 
    } 

}]);