如何基于angularjs中的一个输入模型过滤多个属性

如何基于angularjs中的一个输入模型过滤多个属性,angularjs,Angularjs,说我们有一个搜索输入,它通过两个属性过滤数据:name和id <input ng-model="query.name"> <input ng-model="query.id"> <div ng-repeat="item in items | filter:query"></div> 如何在一个简单的输入ng模型中实现这一点 提前感谢我还没有试过,但从 你可以这样做: <input ng-model="query.$"> 请

说我们有一个搜索输入,它通过两个属性过滤数据:name和id

<input ng-model="query.name">
<input ng-model="query.id">

<div ng-repeat="item in items | filter:query"></div>

如何在一个简单的输入ng模型中实现这一点


提前感谢

我还没有试过,但从 你可以这样做:

<input ng-model="query.$">


请参阅页面上的最后一个示例以及有关过滤器“expression”参数的“Object”版本的部分。

非常简单,您几乎做到了:

<input ng-model="query">
<div ng-repeat="item in items | filter:query">{{item}}</div>

{{item}}
这样,您只有一个ng模型要过滤

--
编辑:

如果对象中有更多不希望过滤的属性,可以从以下位置使用函数或自定义过滤器:

{{filter_expression}filter:expression:comparator}

表达式
可以是:
字符串
对象
函数()


我已经更新了fiddle,以演示如何使用函数和自定义过滤器进行过滤。

使用
角度过滤器可以轻松解决此问题

控制器

$scope.users = [
  { first_name: 'Sharon', last_name: 'Melendez' },
  { first_name: 'Edmundo', last_name: 'Hepler' },
  { first_name: 'Marsha', last_name: 'Letourneau' }
];
HTML


{{user.first_name}{{user.last_name}}
就这么简单


祝你好运。

你可以编写一个自定义过滤器这是本例的gr8分辨率,但在现实生活中,有些无用的属性也将以这种方式包含。感谢你编写了这个示例,但是如果有其他无用的属性我不想包含,我会稍微更改示例:@klamtlne,我已经编辑了我的答案,为这个问题添加了一个新的提琴。
<input ng-model="search" placeholder="search by full name"/>
<th ng-repeat="user in users | searchField: 'first_name': 'last_name' | filter: search">
  {{ user.first_name }} {{ user.last_name }}
</th>
<!-- so now you can search by full name -->