簡體   English   中英

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

[英]Angularjs - nested ng-repeat global index

我有下一個模板:

<div data-ng-repeat="supplier in order.Suppliers" data-ng-init="supplierIndex = $index">
    <div data-ng-repeat="group in supplier.Groups">
         {{something}}
    </div>
</div>

和型號:

$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 計算索引的函數,但是如何最優雅地完成這個目標呢?

您可以使用{{$index}}在列表中顯示組索引。

您可以在控制器中合並這樣的組。

 $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 並完成。

<div data-ng-repeat="group in mergedGroups" >
    {{group}} {{$index}}
</div>

您的選擇:

  1. $parent.$index
  2. 將供應商索引放在供應商對象中
  3. 創建組件<supplier-info supplier="supplier" index="$index">

如果僅在 html 中完成:

<div data-ng-init="$parent.index = 0" data-ng-repeat="supplier in order.Suppliers">
  <div data-ng-repeat="group in supplier.Groups">
    <span data-ng-init="index=$parent.$parent.index;$parent.$parent.index = $parent.$parent.index + 1;">
      {{index}}
    </span>
  </div>
</div>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM