在angularjs中过滤ng-repeat内的数组的第一个值

时间:2016-03-11 09:59:31

标签: angularjs json angularjs-ng-repeat

如何使用josn过滤ng-repeatangularjs内第一行元素<!DOCTYPE html> <html> <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script> <body> <div ng-app="myApp" ng-controller="namesCtrl"> <div> <div ng-repeat="x in num| orderBy:'n'"> <b>{{x.n}}</b> <div ng-repeat="y in amt | orderBy:'v'"> <div ng-if="x.n==y.n"> <div>{{y.v}}</div> </div> </div > <br /> </div> <script> angular.module('myApp', []).controller('namesCtrl', function($scope) { $scope.num= [ {n:'3'}, {n:'1'}, {n:'2'}, ]; $scope.amt= [ {n:'1',v:'23'}, {n:'1',v:'24'}, {n:'1',v:'45'}, {n:'2',v:'56'}, {n:'2',v:'67'}, {n:'2',v:'45'}, {n:'3',v:'23'}, {n:'3',v:'67'}, {n:'3',v:'19'}, ]; }); </script> </body> </html> 。 我坚持这个。

我的示例代码是::

{{1}}

结果是
  1
23个
24个
45个

2
45个
56个
67个

3
19个
23个
67个

我只是结果。第一个价值。

像:
1
23

2
45

3
19

请帮忙......

2 个答案:

答案 0 :(得分:3)

您应该创建自定义过滤器功能:

$scope.myFilter = function (x) {
  return function (y) {
    if (x.n==y.n) {
      return true;
    } else {
      return false;
    }
  }
};

在内部ng-repeat中使用它:

 <div ng-repeat="y in amt | orderBy:'v' | filter:myFilter(x) | limitTo:1">
   <div>{{y.v}}</div>
 </div >

此外,要获得前1个结果添加标准limitTo过滤器(limitTo:1),第一个参数设置最大返回计数。

答案 1 :(得分:0)

(...) < /tr> < /thead> < tbody> < tr ng-repeat="object in objects | SOME_FILTER"> (...) {{object.get("element")}} {{(object.get("element2")).innerElement}} (...) < /tr> < /tbody> < /table> (...)

3个点表示有一些代码被删除。 &#34;在element2&#34;是一个内置JSON的人。 &#34; innerElement&#34;是关键。它对我有用,希望对某人有用