给定一个在满足某些条件时返回 true 的过滤器方法,是否可以在 HTML 中调用其相反的方法,例如使用:
"item in items | filter:!AllDay"
代替
"item in items | filter:AllDay"
? 或者您是否必须维护两种单独的过滤方法(一种为假,一种为真)?
给定一个在满足某些条件时返回 true 的过滤器方法,是否可以在 HTML 中调用其相反的方法,例如使用:
"item in items | filter:!AllDay"
代替
"item in items | filter:AllDay"
? 或者您是否必须维护两种单独的过滤方法(一种为假,一种为真)?
shacker 的回答不适用于 angular 1.0.7,所以这里有另一种方法:
// You can register this in your AppCtrl if you like, otherwise just use $scope.
$rootScope.not = function(func) {
return function (item) {
return !func(item);
}
};
然后你会这样做:
filter:not(myFilterMethod)
filter:({day: '!'+AllDay.day})
另一种选择是创建一个新的否定过滤器并将其管道化:
.filter('not', function() {
return function(input) {
return !input;
}
})
"item in items | filter:AllDay | filter:not"