我做了这样的事情,因为Angular会迭代对象,并尝试将它们整体以及各个属性进行递归比较。
// in your controller$scope.filterMyData = function (input, search_param) { if (input && input.propertyWeCareabout) { // it's ugly, but to quickly get something done you can ignore search_param return input.propertyWeCareabout === $scope.SomeOtherData; } else { return angular.equals(input, search_param); }}<span>Quick search: </span><input type="search" ng-model='quickSearch'/><br/><table> <tr ng-repeat="obj in someHttpService.dataAsArray | filter:quickSearch:filterMyData"> <td>{{ obj.key }} </td> <td>{{ obj.propertyWeCareabout }}</td> </tr></table>就我而言,“ quickSearch”在很大程度上是没有意义的,并且过滤是通过不同的逻辑进行的。您始终可以通过在ng-repeat中添加“ |
filter:quickSearch”,最后始终链接另一个过滤器。



