1

我在使用 ng-repeat 的表格中有一些数据,这些数据排序良好。请看第一个小提琴。

http://jsfiddle.net/HB7LU/10201/

<tr ng-repeat="each in list | orderBy:predicate:reverse">

我正在尝试找到一种方法来获得第一列(名称),如果下一行具有相同的名称,则不要重复名称。见第二个小提琴。

http://jsfiddle.net/HB7LU/10204/

<td ng-show="list[$index].name != list[$index-1].name">{{each.name}}</td>

这最初有效,直到对列进行排序。如果单击标题,列将排序,但数据不正确。我知道这是因为我使用 $index 的列表。我不确定是否有办法使用其他东西来代替?或者说实话,我想知道是否有更好的方法来做到这一点。

如果需要更多信息,请告诉我。谢谢!吨

4

1 回答 1

1

这是因为$index您对项目和重复项目进行排序时的更改可能不再是上一个或下一个(由 logic 确保list[$index].name != list[$index-1].name)。您可以使用ng-init设置/别名 ng-repeat 的初始索引,因为不监视 ng-inited 值,它们不会随着排序而改变。

 <tr ng-repeat="each in list | orderBy:predicate:reverse" ng-init="index= $index">

小提琴

从文档

ngInit 唯一合适的用途是为 ngRepeat 的特殊属性设置别名,如下面的演示所示。除了这种情况,您应该使用控制器而不是 ngInit 来初始化作用域上的值。

于 2015-01-18T23:41:13.653 回答