0

AngularJS 的新手我遇到了以下问题:

如果字典为空,如何评估ng-if

使用数组ng-if="myArray.length"效果很好,但不适用于字典。

编辑:也已经尝试过Object.keys(myDict).length哪个不起作用。

4

2 回答 2

1

ng-if 还能够评估范围内的函数。

例如:

<div ng-if="functionHere(x)" ></div>

然后在你的控制器中,你可以有

$scope.functionHere = function(input) { if [logic here]..... }

因此,如果您可以将逻辑包含在 javascript 函数中,那么您可以将 ng-if 的决定委托给函数返回的内容。

JSFiiddle 示例

于 2014-06-04T13:58:12.240 回答
0

使用范围函数:

html:

<div ng-app="myModule" ng-controller="myController">
    <div ng-if="!isEmptyObject(myObj)">
        <h1>Hello</h1>
    </div>
</div>

javascript:

angular.module('myModule', [])
.controller('myController', ['$scope', function($scope) {
    $scope.isEmptyObject = function(obj) {
        for(var prop in obj) {
            if(obj.hasOwnProperty(prop))
                return false;
        }
        return true;
    }

    $scope.myObj = {};

}]);

看看这个小提琴

于 2014-06-04T14:20:37.697 回答