Angularjs filter not null Angularjs filter not null angularjs angularjs

Angularjs filter not null


Angular >=1.3.16 to latest (1.5.5 at time of writing/update) use '' (empty string) (or '!!' also works)

<ul>    <li ng-repeat="detail in details | filter:{shortDescription: ''}">        <p>{{detail.shortDescription}}</p>    </li></ul>

Example: http://jsfiddle.net/TheSharpieOne/1mnachk6/


Angular >=1.3.6 and <=1.3.15 use '!null'

<ul>    <li ng-repeat="detail in details | filter:{shortDescription: '!null'}">        <p>{{detail.shortDescription}}</p>    </li></ul>

Example: http://jsfiddle.net/TheSharpieOne/4wxs67yv/


Angular >=1.2 and <=1.3.5 use '' (empty string) (or '!!' also works)

<ul>    <li ng-repeat="detail in details | filter:{shortDescription: ''}">        <p>{{detail.shortDescription}}</p>    </li></ul>

Example: http://jsfiddle.net/TheSharpieOne/ovsqf17n/


Angular <1.2 '!!'

<ul>    <li ng-repeat="detail in details | filter:{shortDescription: '!!'}">        <p>{{detail.shortDescription}}</p>    </li></ul>

Example: http://jsfiddle.net/TheSharpieOne/RGEdc/


Overall, '!!' has the best support, but '' (empty string) is recommended and intended for this.


According to https://github.com/angular/angular.js/issues/11573 for Angular >= 1.4, the recommendation is to use '' which matches any primitive except null/undefined.

<ul>    <li ng-repeat="detail in details | filter:{shortDescription: ''}">        <p>{{detail.shortDescription}}</p>    </li></ul>


I think this is easier to read

 <ul>    <li ng-repeat="detail in details" ng-if="detail.shortDescription">        <p>{{detail.shortDescription}}</p>    </li> </ul>