一尘不染

检查对象是否为空,是否可以在ng-show中使用,但不能从控制器中使用?

angularjs

我有一个这样声明的JS对象

$scope.items = {};

我还有一个$ http请求,该请求用项目填充此对象。我想检测该项目是否为空,看来ng-show支持此项目。我输入

ng-show="items"

而且它神奇地起作用了,我也想从控制器上做同样的事情,但是我似乎无法使它起作用,看来我可能不得不遍历该对象以查看它是否具有任何属性,或者使用lodash或下划线。

还有其他选择吗?

我确实尝试过

alert($scope.items == true);

但在创建对象并填充时$http,它始终返回false,因此它不能那样工作。


阅读 203

收藏
2020-07-04

共1个答案

一尘不染

此处无需使用空对象文字,您可以使用null或未定义:

$scope.items = null;

这样,ng-show应该继续工作,并且在您的控制器中您可以执行以下操作:

if ($scope.items) {
    // items have value
} else {
    // items is still null
}

$http回调中,执行以下操作:

$http.get(..., function(data) {
    $scope.items = {
        data: data,
        // other stuff
    };
});
2020-07-04