AngularJS嵌套ng重复索引
问题描述:
我有这个对象数组(左侧),我想用这个(右侧)使用ng-repeat索引它。AngularJS嵌套ng重复索引
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
] |
] |
它还挺使用$父的作品。$指数+ $指数嵌套数组中,但是这只能在第一个嵌套数组作为未来的人都会有自己的$指数从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”。
编辑: 我的数组实际上是购物车的内容。数组中的每个项目都是一个Product,但其中一些项目可以是一个包含折扣更多产品的Package。
答
经过一些反思整个问题之后,我得出结论,使用ng-repeats索引这个嵌套数组会使页面变得过于复杂,并且通过展平数组,我会解决比我创建的更多问题。
TL:DR我已经放平了阵列,通过这样做,我简化了更多的页面,只需添加一些新功能来处理包裹的折扣。
你想扁平你阵列吗? – Danscho
我不能展平数组,因为它包含具有许多成员的对象,并且这些对象的某些成员是对象数组。 –
@ Adi.S实际上你错了:“但是每次我从数组中删除一个项目时,我将不得不再次处理数组以修复”x“”。看看这个简短的例子:http://plnkr.co/edit/87T7jQAMHJq1OE33ZFYx?p=preview –