我正在按日期使用内置的 Angular 过滤器 OrderBy 对我的项目进行排序,它在 DOM 中按预期工作,但我认为它会更新数组本身,以便我可以使用项目的新顺序。
有人知道如何实现这一目标吗?
谢谢。
附注 如果有什么改变的话,我正在使用 AngularJS 1.3.14。
最佳答案
过滤器返回数组的排序副本,因此您可以将其分配给您的范围并保存排序数组的引用。
您可以在 Controller 中注入(inject) $filter 服务,然后以如下方式以编程方式使用它:
var orderBy = $filter('orderBy');
$scope.array = orderBy(unsortedArray, expression);
有关此过滤器的更多信息,请参阅 here .
当然,如果您的排序表达式是动态的,那么每次更改时您都必须更新数组的引用,这并不总是理想的,但对于较小的数据量绝对可行。
关于AngularJS OrderBy 更新源数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37279098/