Checking if object is empty, works with ng-show but not from controller?
angularjs, angularjs-scope
Solution
Use an empty object literal isn't necessary here, you can use null or undefined:
$scope.items = null;
In this way, `ng-show` should keep working, and in your controller you can just do:
if ($scope.items) {
// items have value
} else {
// items is still null
}
And in your `$http` callbacks, you do the following:
$http.get(..., function(data) {
$scope.items = {
data: data,
// other stuff
};
});
Problem
I have a JS object declared like so ``` $scope.items = {}; ``` I also have a $http request that fills this object with items. I would like to detect if this item is empty, it appears that ng-show supports this... I enter ``` ng-show="items" ``` and magically it works,I would also like to do the same from a controller but i can't seem to get it to work, it appears I may have to iterate over the object to see if it has any properties or use lodash or underscore. Is there an alternative? I did try ``` alert($scope.items == true); ``` but it always returns false , when the object is created and when populated with `$http`, so its not working that way.