嵌套的ng-repeat与一个索引

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了嵌套的ng-repeat与一个索引相关的知识,希望对你有一定的参考价值。

我有这个代码,我希望第二个ng-repeat中的所有项目都有一个索引现在索引看起来像这样:

0 0
0 1
0 2
1 0
1 1
1 2

我希望它们看起来像这样:

0 0
0 1
0 2
1 3
1 4
1 5

如果我搜索“qwe”,我希望它看起来像这样

0 0
0 1 
0 2

我怎样才能实现这一目标(请注意ng-if过滤文本)?

var app = angular.module('github', []);
app.controller('githubRepos', ['$scope','$http', function($scope, $http){  
  $scope.text = '';
   $scope.groups = {
     1: ['asd', 'asd1', 'asd2'],
     2: ['qwe', 'qwe1', 'qwe2']
   }
  
  $scope.show = function(text) {
    return !$scope.text || text.indexOf($scope.text) !== -1;
  }
}]);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="github">
  <div ng-controller="githubRepos">
    <input type="text" ng-model="text" />
    <div ng-repeat="group in groups track by $index" ng-init="parentIndex = $index">
      <div ng-repeat="item in group track by $index" ng-if="show(item)">
        {{parentIndex}} {{$index}} {{item}}
      </div>
    </div>
  </div>
</div>
答案

你可以用这个:

{{parentIndex}} {{$ index +(group.length * parentIndex)}} {{item}}

另一答案
    <div ng-app="github">
  <div ng-controller="githubRepos">
    <input type="text" ng-model="text" />
    <div ng-repeat="group in groups track by $index" ng-init="parentIndex = $index">
      <div ng-repeat="item in group track by $index" ng-if="show(item)">
        {{parentIndex}} {{$index + group.length * parentIndex}} {{item}}
      </div>
    </div>
  </div>
</div>

如果您有任何问题,请对其进行评论

以上是关于嵌套的ng-repeat与一个索引的主要内容,如果未能解决你的问题,请参考以下文章

提高嵌套 ng-repeat + 指令的性能

ng-repeat动态创建嵌套ng-repeats的数组

ng-if ng-repeat下的ng-model赋值

在嵌套的 ng-repeat 中传递 2 个 $index 值

Android 动画嵌套片段

Asp MVC angularjs 使用 viewmodel 在视图上嵌套 ng-repeat