AngularJS-如何在另一个过滤器中使用过滤后的数组?

时间:2018-09-07 11:26:18

标签: javascript angularjs

如何在newFirst过滤器中的orderByName中使用过滤后的数组?这可能吗?

filter = (list | orderByName | newFirst )

我有一个列表按字母顺序排序,如果不是新列表,则需要再次排序。

1 个答案:

答案 0 :(得分:1)

是的,您可以这样做。但是,您必须注意第二个排序函数不会覆盖第一个排序函数的结果。最简单的方法是使用具有多个排序参数的AngularJS的标准orderBy过滤器:

使用对象属性:

ng-repeat="item in list | orderBy:['name', 'isNew']" 

使用自定义比较器:

ng-repeat="item in list | orderBy:[orderByName, newFirst]"

第二种方法需要将功能orderByNamenewFirst实现为比较器功能(请参见https://docs.angularjs.org/api/ng/filter/orderBy)。