ngShow的问题

Geo*_*mov 3 angularjs

我有以下问题与ngShow.我从$ http.get接收响应作为jSON,并使用ngRepeat构造几个DOM元素.这一切都正常.从我的控制器中只需申请:

    $http.get(requestUrl).success(function (data) {
        $scope.results = data.results;
    });
Run Code Online (Sandbox Code Playgroud)

data.results是这样的对象:

{ 
   "someProp": ["item1", "item2", "item3"],
   "someProp1": ["item1", "item2", "item3"]
}
Run Code Online (Sandbox Code Playgroud)

从我的模板我尝试使用这样的ngShow:

<table ng-show="Object.keys(results).length > 0">
Run Code Online (Sandbox Code Playgroud)

和这样:

<table ng-show="Object.keys($scope.results).length > 0">
Run Code Online (Sandbox Code Playgroud)

没有运气.

<table ng-show="true">
Run Code Online (Sandbox Code Playgroud)

<table ng-show="false">
Run Code Online (Sandbox Code Playgroud)

好好工作.

所以似乎问题在于表达式.我会非常感谢任何帮助.

Mar*_*man 8

它不会评估Object.keys表达式内部的函数,因为它实际上并不位于作用域中.解决这个问题的一种方法是将Object范围分配给范围.

$scope.Object = Object;
Run Code Online (Sandbox Code Playgroud)

并在你的视野内

<div ng-show="Object.keys(results).length > 0">
    {{Object.keys(results).length}}
</div>
Run Code Online (Sandbox Code Playgroud)