我有一个包含这样的对象的数组:
record in recordlist {
date : "02/12/2014"
time : "00.02.01"
car : "369"
pax: [
{
name : "Ben"
chosen : true
},
{
name : "Eric"
chosen : true
}
]
}
到目前为止,当我使用ng-repeat列出时,我能够按对象(记录)属性进行过滤。
过滤
<input class="form-control" placeholder="Time" ng-model="search.time">
NG-重复:
<div ng-repeat="record in filteredRecords = (recordlist | filter: search)">
当我想过滤嵌套数组( pax )时会出现问题。我试过这个,但到目前为止还没有运气:
<input ng-model="search.pax.name"> // filter by name property
<input ng-model="search.pax.length"> // filter by array length
任何提示?
答案 0 :(得分:1)
您可能需要使用自定义过滤器:
这样的事情应该这样做:
<input ng-model="searchName">
<div ng-repeat="record in recordlist | filter: filterByNested">
在你的控制器中:
$scope.filterByNested = function (record) {
return record.pax.reduce(function (prev, curr, idx, array) {
return prev || curr.name == $scope.searchName;
}, false);
};
基本上,您定义了一个自定义过滤器,如果您要搜索的元素位于嵌套数组中,则返回true。
根据长度改变过滤器功能也是微不足道的。