如何使用文本而不是每列ng-grid 3.0(ui-grid)过滤整个表

时间:2014-11-12 15:40:33

标签: javascript angularjs ng-grid angular-ui-grid

我查看了文档,并没有看到在ng-grid 3中完成此操作的简单方法。在ng-grid 2中,您可以将文本字段绑定到

$scope.filterOptions = {
   filterText: ''
};

然后在gridOptions ...

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

我可以自己进行过滤,但我希望有一种更简单的方法可以解决这个问题。

1 个答案:

答案 0 :(得分:2)

好吧,所以我自己动手了。在这里。

$scope.$watch('filter.filterText', function(newVal, oldVal) {
    $scope.filteredData = $scope.data.filter(function(data) {
      if (data.fullName.toLowerCase().indexOf($scope.filter.filterText) > -1 ||
          data.someField.toLowerCase().indexOf($scope.filter.filterText) > -1 ||
          data.someOtherField.toLowerCase().indexOf($scope.filter.filterText) > -1) {
        return true;
      }
      else {
        return false;
      }
    });

}, true);

$ scope.filter.filterText绑定到输入框并在控制器中监视。每当用户修改文本时,filteredData都会更新。 ui-grid使用filteredData作为其数据源。简短而甜蜜,但我确实错过了2.0中的旧功能。