tuf*_*uff 30 javascript angularjs
如何获得Angular的ng-repeat
指令,按每个项目的实际值对列表进行排序,而不是按每个项目的属性值进行排序?
例如:
<ul>
<li ng-repeat="item in items | orderBy:'WHAT_GOES_HERE??'">{{item}}</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
这是一个小提琴:http://jsbin.com/okatur/1/edit
我意识到我可以.sort()
在阵列上做,但这是我唯一的选择吗?
Bla*_*ole 48
从AngularJS 1.3.0-rc.5开始,如果没有提供其他参数,orderBy
过滤器(参见文档)将使用其项自动对数组进行排序.
<li ng-repeat="item in items | orderBy">{{item}}</li>
Run Code Online (Sandbox Code Playgroud)
所述orderBy
过滤器(见历史文档)还可以采取一个函数作为第二个参数,其返回值为将使用进行比较<
,=
和>
操作者.您可以为此目的简单地使用angular.identity
(参见文档):
$scope.identity = angular.identity;
Run Code Online (Sandbox Code Playgroud)
<li ng-repeat="item in items | orderBy:identity">{{item}}</li>
Run Code Online (Sandbox Code Playgroud)
小智 5
您可以尝试关注。
<ul>
<li ng-repeat="item in items | orderBy:'toString()'">{{item}}</li>
</ul>
Run Code Online (Sandbox Code Playgroud)