首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Angularjs -嵌套ng-repeat全局索引

Angularjs -嵌套ng-repeat全局索引
EN

Stack Overflow用户
提问于 2019-01-24 18:11:17
回答 4查看 83关注 0票数 1

我有下一个模板:

代码语言:javascript
复制
<div data-ng-repeat="supplier in order.Suppliers" data-ng-init="supplierIndex = $index">
    <div data-ng-repeat="group in supplier.Groups">
         {{something}}
    </div>
</div>

和模型:

代码语言:javascript
复制
$scope.order = {
    Suppliers: [
        {
            Groups: [{ id: 'sss'}, {id: 'ddd'}]
        },
        {
            Groups: [{ id: 'qqqq'}, {id: 'www'}, {id: 'xxx'}]
        },
        {
            Groups: [{ id: 'ooo'}]
        }
    ]
}

我需要显示全局组索引,所以输出应该是这样的:

0 1 2 3 4 5

我知道我可以在我们需要显示全局组索引的每个地方使用通过传递的组id来计算索引的函数,但是如何最优雅地实现这个目标呢?

EN

回答 4

Stack Overflow用户

发布于 2019-01-24 19:47:05

您可以使用{{$index}}在您的列表上显示组索引。

票数 0
EN

Stack Overflow用户

发布于 2019-01-24 20:22:22

您可以在您的控制器中像这样合并组。

代码语言:javascript
复制
 $scope.mergedGroups = [];
  for(var i=0;  i < $scope.order.Suppliers.length;  i++){
    for(var k=0;  k < $scope.order.Suppliers[i].Groups.length;  k++){
       $scope.mergedGroups.push($scope.order.Suppliers[i].Groups[k]);
    }
  }

然后,您可以使用单个ng-repeat就可以了。

代码语言:javascript
复制
<div data-ng-repeat="group in mergedGroups" >
    {{group}} {{$index}}
</div>
票数 0
EN

Stack Overflow用户

发布于 2019-01-24 21:02:47

您的选择:

  1. $parent.$index
  2. put supplier索引在supplier对象
  3. 中创建组件<supplier-info supplier="supplier" index="$index">
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54344091

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档