我有用户对象定义如下。如何使用AngularJS将过滤器应用于多个对象?
$scope.users = [{id: 1, name: 'Adam', friends: [{name: 'John', age: 21, sex: 'M'}, {name: 'Brad', age: 32, sex: 'M'}]}]
然后,我有以下代码:
<div ng-repeat="user in users>
<input type="text" ng-model="searchText">
<div ng-repeat="friend in user.friends | filter:searchText">
{{user.name}} {{friend.name}} {{friend.age}}
</div>
</div>
现在,当我在文本框中键入的文本:“SEARCHTEXT”,我希望该过滤器显示用户名和名称/朋友的年龄。任何人都可以帮助我如何做到这一点?
如果我是正确的,那么我认为我需要为此创建一个自定义过滤器,或者是否有任何其他方式可以实现此目的?
非常感谢Mark!但是这个filterFilter(friends,searchText)会过滤所有的朋友对象,即姓名,年龄和性别,或者只是名字和年龄。我的要求是我只想'名称'和'年龄'是可搜索的,并且结果仅在朋友的这两个对象上被过滤,因为那些字段被显示而不是'性' –
查看更新的答案。 –
我意识到这是多少年......但是当我的输入的'searchText'在滤镜内部总是未定义时会发生什么?很明显,范围问题显而易见,但为什么? – Clev3r