I recently ran into a funny quirk when attempting to specify a predicate negating condition on a filter in Angular.js. According to the Angular docs: The predicate can be negated by prefixing the string with ! . For example { name : "!M" } predicate will return an array of items which have property name not containing "M". First, here's what I was attempting to do: <div ng-repeat="section in newsletter.sections | filter: { sectionType: !1 } | orderBy:['region','order']"> In the example above, I'm attempting to filter out any sections of my newsletter object which have a sectionType other than 1. However, this wouldn't do the trick. The workaround was to append the exclamation mark as a string, as shown below: <div ng-repeat="section in newsletter.sections | filter: {sectionType: '!' + 1} | orderBy:['region','order']"> I guess when they said "prefixing the string...