2016-12-06 38 views
0

我有两个使用ng-repeat的东西列表。然后,如果列表中没有项目,我希望它说“空白”。如何ng - 如果另一个div是可见的

下面是更新后的版本:

 <!-- First List --> 
     <div ng-repeat="request in requests" ng-if="request.condition1 == 'something'"> 
      {{request}} 
     </div> 
     <div>Empty list</div> 

    <!-- Second List (both use requests array but have different conditions--> 
     <div ng-repeat="request in requests" ng-if="request.condition22222 == 'something else'"> 
      {{request}} 
     </div> 
     <div>Empty list</div> 
+1

是'list'数组或对象? – lin

+1

什么是'dd'?什么是“列表”? – choz

+0

我刚给了它一个名为列表的模型,以便如果没有请求,我会假设没有列表。 List =什么也没有,除了我试图给MacGyver这个。 –

回答

1

试试这个:

(function(angular) { 
 
    'use strict'; 
 
angular.module('app', []) 
 
    .filter('decorate', function() {  
 
    return function(input, model) { 
 
    return input.filter(function(val){  
 
     return val[model.prop] == model.val; 
 
    });  
 
    }; 
 
}).controller('MyController', ['$scope', '$filter', function($scope, $filter) { 
 
    $scope.requests = [{name:'Tom', age:23},{name:'Henry', age:23},{name:'Max', age:33}];  
 
    $scope.$filter = $filter; 
 
    }]) 
 
})(window.angular);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<body ng-app="app"> 
 
    <div ng-controller="MyController"> 
 

 
    <div ng-init='items1=$filter("decorate")(requests, {prop:"age", val:23})'>First list(age=23):</div> 
 
    <div ng-repeat='item in items1' ng-if='items1.length > 0' >{{item | json}}</div> 
 
    <div ng-if='items1.length == 0'>Empty</div> 
 

 
    <br/> 
 

 
    <div ng-init='items2=$filter("decorate")(requests, {prop:"name", val:"Sam"})'>Second list(name=Sam):</div> 
 
    <div ng-repeat='item in items2' ng-if='items2'>{{item | json}}</div> 
 
    <div ng-if='items2.length == 0'>Empty</div> 
 

 
</div> 
 
</body>

-1

可查看与您的列表的长度,并有条件地表现出来:

<div ng-show="!requests.length">List is empty</div> 

如果你有一个对象,则可以使用Object.keys虽然它在某些较旧的浏览器中可能不受支持。

+0

你是怎么知道这个列表是'array'的? – lin

+0

我不这样做,但是我已经编辑了一个选项以防万一它是一个对象。 –

相关问题