AngularJS过滤器使用多个输入

时间:2014-10-12 18:43:34

标签: javascript angularjs

我想使用两个输入框过滤我的用户数组。

这是我的数组的结构:

    $scope.users = [{
    id: 1,
    fname: 'Sophia',
    lname: 'Smith',
    email: 'sophia@mail.com'
}...

我的输入框名为nameSearch和emailSearch。我想用nameSearch搜索fname和lname属性,同时将emailSearch应用于电子邮件属性。

当我使用像|的简单过滤器时,我发现filter:nameSearch,它搜索整个数组对象。我想将其限制为仅使用fname,lname和email进行搜索。

我已阅读文档并尝试了类似的内容

<li ng-repeat="user in users | filter:{fname: nameSearch, lname: nameSearch, email: emailSearch}">{{user.fname + ' ' + user.lname}}</li>

但它并没有像我想象的那样工作。

我是否必须为此设置自定义过滤器?

Fiddle

1 个答案:

答案 0 :(得分:0)

如果您使用所有过滤器,则该组合是所有搜索的AND。

您可以使用基本搜索:

<li ng-repeat="user in users | filter: nameSearch ">{{user.fname + ' ' + user.lname}}</li>

它将检索您搜索的所有字段。

如果您需要更具体地过滤某些字段,可以使用OR逻辑为该操作创建一个函数。