如何基于angularjs中的一个输入模型过滤多个属性
说我们有一个搜索输入,它通过两个属性过滤数据:name和id如何基于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.$"> 请
<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 -->