Angular ng-repeat filter:¿如何指定过滤字段?

时间:2017-02-14 17:59:47

标签: angularjs filter ng-repeat

好的,看起来很简单,但不是。

我想执行一个简单的角度过滤器,但我需要指定我的数组中哪些字段用于过滤器。

基本过滤器是:

 <li ng-repeat="person in app.people | filter: app.search">

单场滤波器是:

<li ng-repeat="person in app.people | filter: {Surname: app.search}">

如何为过滤器指定多个字段? 类似的东西:

<li ng-repeat="person in app.people | filter: {Name,Surname: app.search}">

这是一个带有基本过滤器和单场过滤器的Plunker:https://jsfiddle.net/odLz1v71/3/

2 个答案:

答案 0 :(得分:2)

在这种情况下,我建议您在控制器中添加一个过滤功能,如下所示:

vm.searchFilter = function(item){
    // Add your own search logic here
    return item.Name.includes(vm.search) || item.Surname.includes(vm.search);
}

然后像这样使用它:

<li ng-repeat="person in app.people | filter: app.searchFilter">

答案 1 :(得分:0)

我认为您不能直接使用基本过滤器执行此操作,但您可以为filter过滤器提供一个函数来执行此检查:

  vm.checkName = function (value) {
    return value.Name.indexOf(vm.search) > -1 || value.Surname.indexOf(vm.search) > -1;
  };

请参阅:https://jsfiddle.net/odLz1v71/4/