目前,我有一个搜索框和一个重复列表。我的重复列表使用具有许多属性的对象。
JSON
$scope.userlist = [{
firstName: "Jack",
lastName: "Smith",
description: "This is a description"
}, {
firstName: "Luke",
lastName: "McDonald",
description: "My name is Luke, and my friend is Jack"
}]
这是我的重复列表:
<md-list-item ng-repeat="user in userList | filter: searchInput as allResults">
<p>{{user.firstName}} {{user.lastName}}</p>
</md-list-item>
我的搜索框模型是 searchInput
,对象作为 $scope.userList
保存到作用域中。
如果我搜索 jack
,两个结果都会显示,因为两个对象都包含此搜索词。
如何限制我的过滤器只在 firstName
和 lastName
属性中查找?
最佳答案
在你的 Controller 中使用它
$scope.searchFilter = function (user) {
var keyword = new RegExp($scope.searchInput, 'i');
return !$scope.searchInput || keyword.test(user.firstName) || keyword.test(user.lastName);
}
您的 HTML 将是:
<md-list-item ng-repeat="user in userList | filter: searchFilter">
<p>{{user.firstName}} {{user.lastName}}</p>
</md-list-item>
关于javascript - Angular `ng-repeat` - 如何只过滤两个属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34917310/