Search code examples
javascriptangularjsangularjs-filter

Angularjs filter not null


Trying to filter out items with a certain property that is not null So for:

var details = [{name:'Bill', shortDescription: null}, {name:'Sally', shortDescription: 'A girl'}]

I would like to only show one li; the one for sally. This is what I have tried with no success

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

Any idea how I can do this without creating a custom filter? Or even so, what the custom filter would look like?


Solution

  • 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>