一尘不染

Angular ng-repeat中的orderBy数组项值

angularjs

我如何获得Angular的ng-repeat指令以按每个项目的实际值而不是按每个项目的属性值对列表进行排序?

例如:

<ul>
    <li ng-repeat="item in items | orderBy:'WHAT_GOES_HERE??'">{{item}}</li>
</ul>

这是一个玩弄的小提琴:http :
//jsbin.com/okatur/1/edit

我意识到我可以.sort()在阵列上做,但这是我唯一的选择吗?


阅读 294

收藏
2020-07-04

共1个答案

一尘不染

从1.3.0-rc.5开始

AngularJS
1.3.0-rc.5开始
,如果未提供其他参数,则orderBy过滤器(请参阅文档)将使用其项目自动对数组进行排序。

<li ng-repeat="item in items | orderBy">{{item}}</li>

[JS Bin](http://jsbin.com/okatur/59/edit)

1.3.0-rc.5之前

所述orderBy过滤器(见历史文档)还可以采取一个函数作为第二个参数,其返回值为将使用进行比较<=>操作者。为此,您可以简单地使用angular.identity(请参阅文档):

$scope.identity = angular.identity;



<li ng-repeat="item in items | orderBy:identity">{{item}}</li>

[JS Bin](http://jsbin.com/okatur/6/edit)

2020-07-04