答案 0 :(得分:103)
将orderBy
过滤器更改为:
orderBy:['-status','name']
这将按降序状态(通过为-
字符添加前缀)排序,然后按升序名称排序。目前您正在通过true
来反转排序,这会导致状态正确(首先在线),但要反转的名称(即,降序)。
如果你想保留反向布尔值,你可以使用orderBy:['status','-name']:true
,但这似乎不仅仅是让status
降序,如前所示。
答案 1 :(得分:0)
还有另一种选择,你可以在ng-repeat和那行中有多个orderBy过滤器:
<li class="friend" ng-repeat="friend in friends | orderBy:['status','name']:true">
将是:
<li class="friend" ng-repeat="friend in friends | orderBy:'name':false | orderBy:'status':true">
最后一个orderBy首先执行,倒数第二个等等......
答案 2 :(得分:0)
在Angular 1.5.8中,之前的示例不起作用。 必须应用不同的逻辑。
它看起来逻辑从之前的orderBy应用到下一个,所以为了排序名称ASC和状态DESC名称顺序必须被尊重:
<li class="friend" ng-repeat="friend in friends | orderBy:'name':true | orderBy:'status':true">