angular ng-repeat array只显示一个元素

时间:2017-11-29 07:35:19

标签: arrays angularjs

我有一个像这样的数组

 $scope.mentors = [ {"name":"Jonathan", "status":0},
                    {"name": "Nathan","status":1},
                    {"name": "Chris","status":1},
                    {"name": "Brian","status":0}];

这里是我的观看代码

<div ng-repeat="m in mentors">
   <div ng-if="m.status == '1'">
   <div>
     {{m.name}}
   </div>

   </div>
</div>

我的结果是: 内森和克里斯

我能做些什么来让它显示内森或克里斯 它必须只仅显示一个结果

p / s:已经尝试了ng-show =&#34; $ last&#34;它没有用,因为布莱恩的状态是&#39; 0&#39;

3 个答案:

答案 0 :(得分:2)

您可以使用limitTo和过滤器

<div ng-repeat="m in mentors | filter: { status : '1'}| limitTo : 1">
  <div>
   {{m.name}}
  </div>
</div>

答案 1 :(得分:1)

您可以在状态上过滤数组,然后通过检查$ index

来获取第一个数组

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>


<!DOCTYPE html>
<html>
<body ng-app="app">
<div ng-controller="myCtrl">
   <div ng-repeat="m in mentors | filter : {status: 1}">
   <div ng-if="$index == 0">
     <div>
       {{m.name}}
     </div>

   </div>
   </div>

</div>
</body>
</html>
result = next.get();
return result.getReliabilityStrategy().getActiveLoggerConfig(next);

答案 2 :(得分:0)

如果您只需要显示1个项目,则没有理由使用ng-repeat

您应该在控制器中处理此问题。创建一个新变量,用于保存您想要显示的导师。

要查找Nathan,您可以使用Array#find()。它将返回与条件status === 1

匹配的第一个项目

&#13;
&#13;
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
  $scope.mentors = [{
      "name": "Jonathan",
      "status": 0
    },
    {
      "name": "Nathan",
      "status": 1
    },
    {
      "name": "Chris",
      "status": 1
    },
    {
      "name": "Brian",
      "status": 0
    }
  ];
  
  $scope.mentor = $scope.mentors.find(m => m.status === 1);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myApp" ng-controller="myCtrl">
  <h1>{{mentor.name}}</h1>
</div>
&#13;
&#13;
&#13;