多复选框过滤器在 AngularJS 的 ng-repeat 中不起作用
Multi checkbox filter not working in ng-repeat with AngularJS
我在我的 AngularJS 应用程序中完成了几个年龄范围过滤器。
4 个中,1 个不能正常工作(结果与过滤器不匹配),我似乎找不到原因。
您可以看到一个工作示例 here。
过滤器如下所示:
.filter('five', function () {
return function ( items,filter) {
if(filter)return items.filter(x=>x.age<=4);
else return items;
}
})
.filter('child', function () {
return function ( items,filter) {
if(filter)return (items.filter(x=>x.age>=5) && items.filter(x=>x.age<=14));
else return items;
}
})
.filter('young', function () {
return function ( items,filter) {
if(filter)return (items.filter(x=>x.age>=14) && items.filter(x=>x.age<=17));
else return items;
}
})
.filter('adult', function () {
return function ( items,filter) {
if(filter)return items.filter(x=>x.age>=18);
else return items;
}
})
我在视图中这样做:
<div ng-repeat="item in data
| five:fiveFilter
| adult:adultFilter
| young:youngFilter
| child:childFilter">
{{item.age}}
</div>
如您所见,除 young
之外的所有过滤器都有效。
我错过了什么?
更改这些过滤器代码:
.filter('child', function () {
return function ( items,filter) {
if(filter)return (items.filter(x=>x.age>=5 && x.age<=14));
else return items;
}
})
.filter('young', function () {
return function ( items,filter) {
if(filter)return (items.filter(x=>x.age>=14 && x.age<=17));
else return items;
}
})
我在我的 AngularJS 应用程序中完成了几个年龄范围过滤器。 4 个中,1 个不能正常工作(结果与过滤器不匹配),我似乎找不到原因。
您可以看到一个工作示例 here。
过滤器如下所示:
.filter('five', function () {
return function ( items,filter) {
if(filter)return items.filter(x=>x.age<=4);
else return items;
}
})
.filter('child', function () {
return function ( items,filter) {
if(filter)return (items.filter(x=>x.age>=5) && items.filter(x=>x.age<=14));
else return items;
}
})
.filter('young', function () {
return function ( items,filter) {
if(filter)return (items.filter(x=>x.age>=14) && items.filter(x=>x.age<=17));
else return items;
}
})
.filter('adult', function () {
return function ( items,filter) {
if(filter)return items.filter(x=>x.age>=18);
else return items;
}
})
我在视图中这样做:
<div ng-repeat="item in data
| five:fiveFilter
| adult:adultFilter
| young:youngFilter
| child:childFilter">
{{item.age}}
</div>
如您所见,除 young
之外的所有过滤器都有效。
我错过了什么?
更改这些过滤器代码:
.filter('child', function () {
return function ( items,filter) {
if(filter)return (items.filter(x=>x.age>=5 && x.age<=14));
else return items;
}
})
.filter('young', function () {
return function ( items,filter) {
if(filter)return (items.filter(x=>x.age>=14 && x.age<=17));
else return items;
}
})