请参阅此Plunk:http://plnkr.co/edit/5YCCdDSnpHKRU51R9vCL?p=preview
如何根据显示的字段进行过滤?目前,过滤是在完整的用户对象上完成的。
例如:
$scope.users1 = [
{name: 'Dave', id: 24},
{name: 'Tim', id: 22},
{name: 'Laura', id: 20}
];
<user-info-card users="users" label="name">
</user-info-card>
如果我只显示id,即使我键入&#34; Dave&#34;,过滤器也能正常工作。我希望它仅适用于显示的字段。也希望它是通用的。它可能是一个不同的对象,但搜索词应该查看标签字段并相应地过滤
答案 0 :(得分:1)
添加了一个基于标签排序的功能,希望是足够的。
http://plnkr.co/edit/iCepagIKA1OFDjBnB35I?p=preview
$scope.searchTerm = function(item) {
if(item[$scope.label].toString().
startsWith($scope.searchCondition1)){
return true;
}
else{
return false;
}
}
答案 1 :(得分:0)
您可以使用严格过滤器来完成这些工作。
<强>的test.html 强>
<div>
<input placeholder="Search for a name..." ng-model="searchTerm" ng-change="onChange()">
<div ng-repeat="user in users | filter:user:strict">
...
</div>
</div>
在文本框键更改事件期间,搜索项将转换为对象字段值。
script.js
$scope.onChange = function () {
var user = {};
user[$scope.label] = $scope.searchTerm;
$scope.user = user;
};