5

我有 3 个搜索字段应该过滤我的表(名称、目标、范围)。
前 2 个创建常规过滤器,这意味着在其中一个更改时,“filterText”属性在此结构中发生更改:

name: [NAME_VALUE]; target: [TARGET_VALUE];

问题出在最后一个。我希望它按较低或较高进行过滤。

像这样的东西:

name: [NAME_VALUE]; target: [TARGET_VALUE]; reach: >[REACH_VALUE]

所以我发现我应该创建我的自定义过滤函数并将“useExternalFilter”设置为true。

我已经为此搜索了 2 天,但没有找到完整的答案:如何获得对行的引用以过滤它们?当我得到这个参考时,如何使用 ng-grid 方式设置行隐藏?

这就是我到现在为止所做的:我在 ng-grid 的源代码中看到他们在“filterText”的变化上发出“ngGridEventFilter”事件,所以我用这个来听它:

$scope.$on( "ngGridEventFilter", function(){
    $scope.checkReach( );
});
4

1 回答 1

2

您正在覆盖网格内部过滤器逻辑,您必须自己处理它,服务器端。

<input type="text" ng-model="filterOptions.filterText" placeholder="Filter">


app.controller('MyCtrl', function($scope) {
    $scope.filterOptions = {
        filterText: "",
        useExternalFilter: true
    };

    $scope.gridOptions = {
        data: 'myData',
        filterOptions: $scope.filterOptions
    };

    $scope.$watch('filterOptions', function () {
      //Call an async function to fetch data here.
      someAsyncFunction($scope.filterOptions.filterText);
    }, true); 
});
于 2014-01-02T04:19:37.800 回答