将'orderBy'与Angular中的另一个过滤器结合使用

时间:2013-05-21 17:42:58

标签: javascript angularjs

有没有办法通过另一个过滤器的输出来排序数组?我有一个这样的表达式:

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

此处subscriptions是一个对象数组,其详细信息并不重要,subscriptionOutput是自定义过滤器。

现在,我想通过subscriptionOutput过滤器的输出按字母顺序排列此列表。我怎么能做到这一点?我知道我可以编写一个函数并按此排序,但我希望有一种更流畅的方式。

2 个答案:

答案 0 :(得分:3)

您可以将过滤器组合在一起:

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

答案 1 :(得分:3)

我找到了一个合理的方式来做到这一点:

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

只有合理地,因为您必须在某处将$filter添加到范围:

$scope.$filter = $filter;