AngularJS嵌套的ng-repeat索引

时间:2016-01-13 11:03:53

标签: arrays angularjs indexing nested ng-repeat

我有这个对象数组(左侧),我想用ng-repeat这样(右侧)索引它。

 i   j        |  x
[             |     
 0            |  0   x = i
 1            |  1
 2            |  2
 3 [          |  
     0        |  3   x = i + j
     1        |  4
     2        |  5
   ]          |  
 4            |  6   x = ?
 5 [          |  
     0        |  7   x = ?
     1        |  8
     2        |  9
   ]          |
]             |

它有点在嵌套数组中使用$ parent。$ index + $ index,但是这只适用于第一个嵌套数组,因为下一个将使它们的$ index再次从0开始,所以5 + 0 = 5,而不是7.此外,主数组的索引将不计入。之后的嵌套数组元素。

我真正需要的是一个可以在{{}}块中显示的计数器。

<div ng-repeat-start="item in array track by $index">
   {{$index}}
</div>
<div ng-if="isArray(item)" ng-repeat="subItem in item track by $index">
   {{$parent.$index+$index}}
</div>
<hr ng-repeat-stop>

我在想,也许可以将“x”作为成员存储在数组中的每个项目中,但是每当我从数组中删除一个项目时,我将不得不再次处理数组以修复“x”

编辑: 我的数组实际上是购物车的内容。数组中的每个项目都是一个产品,但其中一些项目可以是一个包含更多折扣产品的包。

1 个答案:

答案 0 :(得分:1)

在对整个问题进行了一些重新思考之后,我得出的结论是,使用ng-repeats对这个嵌套数组进行索引会使页面过于复杂,并且通过展平数组我会解决比我创建的问题更多的问题。

TL:DR我已经把阵列弄平了,通过这样做我已经简化了更多页面,只需添加一些新功能来处理套餐的折扣。