我正在尝试制作多重过滤器,过滤对象中的三个属性。
我已经做过的事情:
<div class="" ng-repeat="selectedCard in Cards | filter {
status:filterValueStatus,
monitorLevel:filterValueType,
monitorSystem:filterValue
} ">
问题是我需要在状态等于'2'时显示对象,而不是继续使用两个过滤的属性:monitorLevel和monitorSystem。 (它不起作用)。 此外,如果status等于'3',我需要显示对象,然后通过两个属性monitorLevel和monitorSystem对其进行过滤。
总之,它需要检查状态,然后才能决定是否制作另外两个过滤器。
我到目前为止构建的过滤器:
app.filter('cardFilter', ['$filter', function($filter) {
return function(status, monitorLevel,monitorSystem) {
if (status == '2') {
return $filter('filter')(status);
} else {
return $filter('filter')(status,monitorLevel,monitorSystem);
}
};
}]);
答案:
<div class="" ng-repeat="selectedCard in Cards | filter: filterValueStatus == '2' ? {status:'2'} : {status:'3', monitorLevel:filterValueLevel, monitorSystem:filterValue}">
答案 0 :(得分:0)
您可以将过滤器拆分为2并使用三元操作。你得到了这个概念:
<div ng-repeat="selectedCard in Cards | filter : { status:filterValueStatus} |
filter : selectedCard.status === 2 ? {} : {
monitorLevel:filterValueType,
monitorSystem:filterValue
}
} ">
答案 1 :(得分:0)
答案并不像我认为的那样复杂。
{{for people}}
<li>{{:#data['full.name']}} likes to wear {{:shirtColor}} shirts</li>
{{/for}}
首先,根据状态检查状态是否等于'2',并且只检查过滤后的卡片。