"Empl": [
{
"id": 1,
"name": "Jhon",
"phone": "9999999999",
"address": {
"city": "Pune",
"address_line1": "ABC road",
"address_line2": "XYZ building",
"postal_code": "12455"
}
}
Search: <input type="text" ng-model="query"></input>
<tr ng-repeat="data in Empl | filter : {name:query,
address:{city:query}}">
如果我们使用相同的查询字符串来过滤数组中对象的两个不同属性,过滤器不起作用。
您希望将筛选器逻辑移出模板并作为函数移入控制器,然后根据函数进行筛选。
如果查询与项目匹配,或者名称的小写值与小写值或查询匹配,或者如果城市的小写值与查询的小写值匹配,则函数返回 true,否则返回 false。
<tr ng-repeat="data in Empl | filter : search">
$scope.search = function(item) {
if (!$scope.query ||
(item.name.toLowerCase().indexOf($scope.query.toLowerCase()) != -1) ||
(item.city.toLowerCase().indexOf($scope.query.toLowerCase()) != -1)
){
return true;
}
return false;
};