结合& # 39;orderBy& # 39;用Angular中的另一个过滤器

Combining 'orderBy' with another filter in Angular

本文关键字:另一个 过滤器 orderBy 结合 Angular      更新时间:2023-09-26

是否有一种方法可以通过另一个过滤器的输出来排序数组?我有一个这样的表达式:

<li ng-repeat="sub in subscriptions">
  {{sub | subscriptionOutput}}
</li>

这里subscriptions是一个对象数组,其细节不重要,而subscriptionOutput是一个自定义过滤器。

现在,我想按照subscriptionOutput过滤器的输出(按字母顺序)对这个列表排序。我怎样才能做到这一点呢?我知道我可以写一个函数并按它排序,但我希望有一个更巧妙的方法。

您可以将过滤器连接在一起:

{{sub | subscriptionOutput | orderBy:"someKey"}}

我找到了一个相当巧妙的方法:

<li ng-repeat="sub in subscriptions | orderBy: $filter('subscriptionOutput')">
  {{sub | subscriptionOutput}}
</li>

只有合理,因为您必须将$filter添加到作用域的某个地方:

$scope.$filter = $filter;