ngHide or ngShow based on number of children
AngularJS made a breaking change in version 1.3.0!
Unfortunately, rajkamals answer is no longer correct.
From this version on, only these 6 values are considered falsy:
false
null
undefined
NaN
0
""
The values 'f'
, '0'
, 'false'
, 'no'
, 'n'
and []
(!) became truthy.
So using
<div ng-show="items">
<!-- ... --->
</div>
can no longer be recommended if the div should only be visible if items
contains at least 1 element, because even with items = []
it will be displayed.
Instead, you could use
<div ng-show="items.length > 0">
<!-- ... --->
</div>
To add to @Josh David Miller answer, the following values are considered falsy in angular.
1)An Empty Array
2)An Empty String //Even a space is considered true
3)An Boolean with false
4)undefined
5)null
6) 0
So, David's answer can be written as,
<div ng-show="items.length">
<div ng-repeat="item in items">
<!-- ... -->
</div>
</div>
or even shorter,
<div ng-show="items">
<div ng-repeat="item in items">
<!-- ... -->
</div>
</div>