在AngularJS的ng-repeat中,orderBy和limitTo之间的问题是一个已知的问题。当limitTo的值发生更改时,orderBy不会重新排序数据。
解决此问题的一种方法是使用一个自定义的过滤器,将orderBy和limitTo组合在一起。这个过滤器会在数据数组上应用orderBy和limitTo,并返回排序和限制后的结果。
下面是一个示例代码,演示了如何实现这个自定义过滤器:
- {{item.name}}
在上述示例中,我们定义了一个名为customFilter的自定义过滤器。它接受两个参数:要过滤的输入数组和要排序的属性。它首先应用orderBy过滤器,然后再应用limitTo过滤器,最后返回结果。
在ng-repeat中,我们使用customFilter来替代orderBy和limitTo过滤器。每当limitValue更改时,ng-change指令会调用updateLimit函数,从而更新limitValue的值。这将触发ng-repeat重新运行,并使用新的limitValue值来应用自定义过滤器。
通过使用自定义过滤器,我们能够在limitTo更改时重新排序数据,解决了orderBy和limitTo之间的问题。