如果数组中有两个或多个带有angularjs ng-show的项目,如何显示元素?

时间:2014-10-20 10:04:49

标签: arrays angularjs

我有一系列可能是空的物品,有一件物品可以是两件物品。 现在如果我想要显示元素我使用简单的ng-show事件。

<div ng-show="scopeName">
...
</div>

因此,如果pageSlides有项目,则div将被打印,否则不会。

现在我想编辑这个节目,当该项目有2个以上的项目时打印div。

我正在尝试这个但它不起作用:

<div ng-show="pageSlides.length > 1"> (or any number)
...
</div>

我很想得到一些帮助。

谢谢!

更新,这是我的代码:

myApp
  .controller(
    'controllerName', 
    [
      '$rootScope',
       '$scope', 
       '$routeParams',
       'Api', 
       function($rootScope, $scope, $routeParams, Api) {

      var pageSlug = $routeParams['pageSlug']; 

      $scope.init = function() {

          $scope.singlePage = [];
          $scope.pageSlides = [];
          Api.get(
              'site/' + $rootScope.config.api.propertyId + '/page/' + pageSlug                  
          ).then(                        
              function(data) { 
                    $scope.singlePage = data.page;
                    $scope.pageSlides = $scope.singlePage['media'];
              }
          );

      }

      $scope.init();  

}])

2 个答案:

答案 0 :(得分:5)

试试这段代码吧:

<div ng-controller="MyCtrl">
    <div ng-show="array.length > 2">I'm visible</div>
    <div ng-show="array.length > 3">I'm not visible</div>
</div>

function MyCtrl($scope) {
    $scope.array = [
        {id: 1},
        {id: 2},
        {id: 3}
    ];
}

这是JSFiddle的工作示例。

我想注意,您的问题代码有错:scopeName.leng ht &gt; 1

我认为,它会更好:scopeName.leng th &gt; 1:)

答案 1 :(得分:2)

请检查此demo

<div ng-app="app">
   <div ng-controller="myController">
        <div ng-show="items.length">I am showing, items array is not empty</div><br />
       <div ng-show="items.length > 1">I am showing, items array has more than one record</div><br />
       </div>
</div>



var app = angular.module('app', []);
 app.controller('myController', function ($scope) {
     $scope.items = ["Apple", "Orange"];
});