Angularjs 您可以选择一个或多个过滤器吗

Angularjs 您可以选择一个或多个过滤器吗,angularjs,angularjs-ng-repeat,angularjs-filter,Angularjs,Angularjs Ng Repeat,Angularjs Filter,我有两个不同的自定义过滤器。在ng重复中,我希望根据一个过滤器或另一个过滤器过滤结果,而不是两个过滤器 我知道这里有一个根本性的缺陷,我认为这些过滤器是应用在管道中的,所以“ORing”过滤器真的没有意义 想知道如何做到这一点 例如: 要匹配用户名任何部分的筛选器(第一个+最后一个) 筛选以匹配电子邮件。Simple并不真的需要它,因为我可以使用过滤器:{email:param} angular.module('filters', []).filter('email', function() {

我有两个不同的自定义过滤器。在ng重复中,我希望根据一个过滤器或另一个过滤器过滤结果,而不是两个过滤器

我知道这里有一个根本性的缺陷,我认为这些过滤器是应用在管道中的,所以“ORing”过滤器真的没有意义

想知道如何做到这一点

例如:

要匹配用户名任何部分的筛选器(第一个+最后一个)

筛选以匹配电子邮件。Simple并不真的需要它,因为我可以使用过滤器:{email:param}

angular.module('filters', []).filter('email', function() {
  return function(users, search) {
    var match = new RegExp(search, 'i');
    return users.filter(function (user) {
      if (match.test(user.email)) return true;
    });
  };
});
在一部分中,我只想匹配全名,效果很好:

<input type="text" ng-model="query">
<div ng-repeat="user in users | fullname:query>

或(无自定义电子邮件):


这里的问题是应用了全名过滤器,然后应用了电子邮件过滤器。有没有其他方法可以让它匹配全名或电子邮件,而不是

我知道最终我可以编写另一个过滤器来过滤全名或电子邮件。但是当我想要第三、第四或第五个时会发生什么呢。我真的不想编写所有一次性的定制过滤器


想法?

是的,你可以。。那将不会,也不会。意思是如果我这样做:user in users | fullname:query | email:query如果查询是'Foo',则必须在fullname和email中。不是全名或电子邮件。“你所做的是锁链,而不是奥林。”帕特里克莫特为你的困惑感到抱歉。我知道它的链接,对不起,我叫它管道。所以我明白了为什么它不起作用。我的问题是如何实现或过滤不链接它们,因为链接不是我想要的。您希望用户指定使用哪个搜索过滤器吗?如何确定or的结果?
<input type="text" ng-model="query">
<div ng-repeat="user in users | fullname:query>
<input type="text" ng-model="query">
<div ng-repeat="user in users | email:query>
<input type="text" ng-model="query">
<div ng-repeat="user in users | filter:{email: query}>
<input type="text" ng-model="query">
<div ng-repeat="user in users | fullname:query | filter: {email: query}>