Given a filter method that returns true if some condition is met, is it possible to invoke its opposite in HTML, e.g. to use:
"item in items | filter:!AllDay"
instead of
"item in items | filter:AllDay"
? Or do you have to maintain two separate filter methods (one for false and one for true)?
As noted by ENDOH (this SO question is technically a duplicate), you can negate a filter by prepending '!' to the filter string, like this:
filter:'!'+myFilter
Note that the '!' is quoted. The documentation is not terribly clear on this, and an example there would be helpful.
shacker's answer didn't work for angular 1.0.7, so here's another way to do this:
// You can register this in your AppCtrl if you like, otherwise just use $scope.
$rootScope.not = function(func) {
return function (item) {
return !func(item);
}
};
Then you would do this:
filter:not(myFilterMethod)
filter:({day: '!'+AllDay.day})