多参数AngularJS滤波器

多参数AngularJS滤波器,angularjs,filter,Angularjs,Filter,我希望能够使用作为数组传入的许多参数筛选我的表。因此,我可以建立一个过滤器参数数组并传入它们。我不想明确说明要过滤哪些列,因为可能有很多列(一些列将显示,一些列不显示) HTML看起来像这样 <tr ng-repeat="item in infoData | filter:['param1','param2']"> <td>{{item.data1}}</td> <td>{{item.data2}}</td> &

我希望能够使用作为数组传入的许多参数筛选我的表。因此,我可以建立一个过滤器参数数组并传入它们。我不想明确说明要过滤哪些列,因为可能有很多列(一些列将显示,一些列不显示)

HTML看起来像这样

<tr ng-repeat="item in infoData | filter:['param1','param2']">
    <td>{{item.data1}}</td>
    <td>{{item.data2}}</td>
    <td>{{item.data3}}</td>
    <td>{{item.data4}}</td>
</tr>

{{item.data1}}
{{item.data2}
{{item.data3}
{{item.data4}
是否需要根据多个参数筛选表


谢谢

这是一种快速而肮脏的方式来完成你所需要的

首先在控制器中创建一个自定义过滤器,如下所示:

$scope.customFilter = function(param1, param2) {
   return function(item) {
      //return custom stuff here
   }
}
然后在html中执行此操作

<tr ng-repeat="item in infoData | filter:customFilter(param1, param2)">
   <td>{{item.data1}}</td>
   <td>{{item.data2}}</td>
   <td>{{item.data3}}</td>
   <td>{{item.data4}}</td>
</tr>
现在在html中,您可以执行以下操作:

<tr ng-repeat="item in infoData | customFilter(param1, param2)">
   <td>{{item.data1}}</td>
   <td>{{item.data2}}</td>
   <td>{{item.data3}}</td>
   <td>{{item.data4}}</td>
</tr>

{{item.data1}}
{{item.data2}
{{item.data3}
{{item.data4}

这不应该添加到自定义筛选器而不是控制器中吗?这是一种快速而肮脏的方法,但您肯定可以构建自定义筛选器,尤其是在筛选器复杂的情况下。我更新了答案。
<tr ng-repeat="item in infoData | customFilter(param1, param2)">
   <td>{{item.data1}}</td>
   <td>{{item.data2}}</td>
   <td>{{item.data3}}</td>
   <td>{{item.data4}}</td>
</tr>