angularjs javascript对象上空ng-repeat的默认文本

psi*_*mes 13 javascript angularjs

我有一个问题是打印出一个空的ng-repeat正在迭代javascript对象的默认文本.通常我会做一个<div ng-show="object.length==0">EMPTY SET</div>"但你不能在javascript对象上调用长度.我有一个简单的jsfiddle来演示该问题:http://jsfiddle.net/C4t4LystX/zHJv8/8/.基本上我只需要知道ng-repeat没有重复的对象,所以我可以显示一些默认文本.谢谢你的帮助.

ete*_*rps 16

你是对的,javascript中没有object.length.因为要将源重置为空对象,所以需要检查对象是否为空,或者是否有某些源.您可以编写一个名为isEmpty的简单函数.

   <div ng-show="isEmpty(sources)">
          EMPTY SOURCES
   </div>

function Ctrl1($scope) {
    $scope.sources = {source1:{id:"source1"},source2:{id:"source2"}};

    $scope.cleanSources = function(){
        $scope.sources = {};                               
    };

    $scope.isEmpty = function (obj) {
       return angular.equals({},obj); 
    };
}
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/zHJv8/21/

编辑:更改了isEmpty以使用angular.equals而不是每个循环.

  • 不确定,但你可以编写isEmpty函数,如:return angular.equals({},obj); 把它变成一线. (3认同)