如何使用数组中的多个值过滤ng-Table。

时间:2017-01-13 15:35:53

标签: javascript angularjs filter ngtable selectize.js

我目前正在实施angular-selectize.js(https://github.com/machineboy2045/angular-selectize)来添加一个搜索框,该搜索框将接收多个值,并根据这些值过滤ng-Table中的所有单元格,而不指定要过滤的列。与使用输入创建搜索框并在filter:search上执行ng-repeat但使用多个值进行过滤的结果类似。

Plunker:http://plnkr.co/edit/701op5FQ0PRJ5FOlF5Mq?p=preview

2 个答案:

答案 0 :(得分:0)

我创建了一个自定义过滤器,它工作正常。 Plunker:http://plnkr.co/edit/701op5FQ0PRJ5FOlF5Mq?p=preview

  .filter('filterSelectize', function($filter){
    return function(cars, multiArray) {
      if(multiArray.length >= 1){
        var filteredCars = cars;
        for(i=0; i < multiArray.length; i++){
          var filteredCars = $filter('filter')(filteredCars, multiArray[i]);
        }
        return filteredCars;
      }
      else {
        return cars;
      }
    }
  })

答案 1 :(得分:0)

你也可以使用过滤键$:

使用“官方”ngTable方式
function applyGlobalSearch(){
      var term = self.globalSearchTerm;
      if (self.isInvertedSearch){
        term = "!" + term;
      }
      self.tableParams.filter({ $: term });
    }

https://codepen.io/christianacca/pen/doEbJW?editors=1010