AngularJS 嵌套的 ng-repeat 索引
AngularJS nested ng-repeat indexing
我有这个对象数组(左侧),我想使用 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".
编辑:
我的数组实际上是购物车的内容。数组中的每个项目都是一个产品,但其中一些项目可以是包含更多折扣产品的套餐。
在重新思考整个问题后,我得出结论,使用 ng-repeats 索引这个嵌套数组会使页面过于复杂,通过展平数组,我解决的问题比我创造的要多。
TL:DR 我已经展平了数组,通过这样做我简化了更多的页面,只需要添加一些新函数来处理包裹的折扣。
我有这个对象数组(左侧),我想使用 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".
编辑: 我的数组实际上是购物车的内容。数组中的每个项目都是一个产品,但其中一些项目可以是包含更多折扣产品的套餐。
在重新思考整个问题后,我得出结论,使用 ng-repeats 索引这个嵌套数组会使页面过于复杂,通过展平数组,我解决的问题比我创造的要多。
TL:DR 我已经展平了数组,通过这样做我简化了更多的页面,只需要添加一些新函数来处理包裹的折扣。