orderBy两个字段(一个反向)
我想按状态(在线第一,离线最后)和按字母顺序排列朋友列表。 我设法得到的是:
- 在线优先/颠倒字母顺序
- 或脱机第一次/按字母顺序
这里是暴露暴露我的问题
将orderBy
filter更改为:
orderBy:['-status','name']
这将按降序排列(通过前缀-
字符),然后升序名称。 目前,你传递true
的扭转sorting,这是导致状态是正确的(在线第一),但名称要颠倒(即下降)。
如果你想保留反向布尔值,你可以使用orderBy:['status','-name']:true
但是这并不像前面所说的那样只是降低status
。
还有另一个选项可以做到这一点,你可以在ng-repeat中有多个orderByfilter,那一行:
<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执行第一次和倒数第二等…
这里是我的plunkr: http ://plnkr.co/edit/girPFzdi3Zx0yp0ASGVQ?p=preview
在Angular 1.5.8之前的例子不起作用。 不同的逻辑必须被应用。
它看起来像先前orderBy的逻辑被应用到下一个,所以为了sorting名称ASC和状态DESC名称的顺序必须被反悔:
<li class="friend" ng-repeat="friend in friends | orderBy:'name':true | orderBy:'status':true">
这里是固定的例子: http : //plnkr.co/edit/0ZFIftSgNkU9F03xJztG?p=preview