我有3个搜索字段,应该过滤我的表(名称,目标,范围).
前两个创建常规过滤器,意味着更改其中一个“filterText”属性在此结构中更改:
前两个创建常规过滤器,意味着更改其中一个“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( ); });
解决方法
您正在覆盖网格内部过滤器逻辑,您必须自己处理它,服务器端.
<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); });