gpt4 book ai didi

javascript - 表排序(使用 ng-repeat 并使用 ng-if 删除重复列名)

转载 作者:行者123 更新时间:2023-11-28 00:40:21 24 4
gpt4 key购买 nike

我在使用 ng-repeat 的表中有一些数据,并且排序良好。请看第一把 fiddle 。

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

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

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

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

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

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

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

最佳答案

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

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

<强> Fiddle

来自文档

The only appropriate use of ngInit is for aliasing special properties of ngRepeat, as seen in the demo below. Besides this case, you should use controllers rather than ngInit to initialize values on a scope.

关于javascript - 表排序(使用 ng-repeat 并使用 ng-if 删除重复列名),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28016049/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com