"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}}">
如果我们使用相同的查询字符串来过滤数组内对象的两个不同属性,则过滤器不起作用。
答案 0 :(得分:0)
您希望将过滤器逻辑移出模板并作为函数进入控制器,然后对函数进行过滤。
如果查询与项匹配,或者名称的小写值与小写值或查询匹配,或者城市的小写值与查询的小写值匹配,则函数返回true,否则返回假的。
<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;
};