Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
过滤angularjs中ng repeat内数组的第一个值_Angularjs_Json_Angularjs Ng Repeat - Fatal编程技术网

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

过滤angularjs中ng repeat内数组的第一个值,angularjs,json,angularjs-ng-repeat,Angularjs,Json,Angularjs Ng Repeat,如何使用angularjs过滤ng repeat中的josn行的第一个元素。 我被这件事缠住了 我的示例代码是: <!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="

如何使用
angularjs
过滤
ng repeat
中的
josn
行的第一个元素。 我被这件事缠住了

我的示例代码是:

<!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>

{{x.n}}
{{y.v}}

角度.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'}, ]; });
结果是
1
23
24
45

2
45
56
67

3
19
23
67

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

比如:
1
23

2
45

3
19


请帮助…

您应该创建自定义筛选功能:

$scope.myFilter = function (x) {
  return function (y) {
    if (x.n==y.n) {
      return true;
    } else {
      return false;
    }
  }
};
在内部ng中使用它重复:

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

{{y.v}}

此外,要获得前1个结果,请添加标准Limito筛选器(Limito:1),其中第一个参数设置最大返回计数。

您应该创建自定义筛选器函数:

$scope.myFilter = function (x) {
  return function (y) {
    if (x.n==y.n) {
      return true;
    } else {
      return false;
    }
  }
};
在内部ng中使用它重复:

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

{{y.v}}
另外,要获得前1个结果,请添加标准的limito过滤器(limito:1),其中第一个参数设置最大返回计数。


(...)




(...)
{{object.get(“元素”)}
{{(object.get(“element2”).innerElement}
(...)



(...)

这3个点意味着有一些代码被删掉了。“element2”是一个内部带有JSON的元素。“内部元素”是关键。这对我很有用,希望对别人有用 (...) (...) {{object.get(“元素”)} {{(object.get(“element2”).innerElement} (...) (...)


这3个点意味着有一些代码被删掉了。“element2”是一个内部带有JSON的元素。“内部元素”是关键。这对我来说很有效,希望对某些人有用

这种策略效率很低:对于每个x.n,它在整个
amt
数组中循环,只显示一个元素。为什么不在JS代码中只找到一次要显示的元素呢?请参考此链接可能对您有用。这种策略的效率非常低:它为每个x.n循环整个
amt
数组,只显示一个元素。为什么不在JS代码中只找到一次要显示的元素呢?请参考此链接可能对您有用。这对我来说太完美了。。这段代码解决了我的多重问题。。。谢谢Slavat这对我来说太完美了。。这段代码解决了我的多重问题。。。谢谢你花时间回答。请尝试正确设置代码格式,并可能添加更多解释谢谢您花时间回答。尝试正确地格式化代码,并可能添加一些解释