【发布时间】:2017-04-18 16:28:24
【问题描述】:
假设我有一个这样的对象数组:
[
{
name: 'test1',
status: 'pending',
date: 'Jan 17 2017 21:00:23'
},
{
name: 'test2',
status: 'pending',
date: 'Jan 14 2017 21:00:23'
},
{
name: 'test3',
status: 'active',
date: 'Jan 10 2017 21:00:23'
}
];
我首先想根据“状态”对其进行排序,其中所有具有“待定”子状态的项目都应位于“活动”之前。 (我还有其他状态,所以 orderBy Name DESC 不起作用。)
稍后我想根据日期降序对它们进行子排序。
在我的 Angular 脚本中,我有一个变量定义为 sortField:
$scope.sortField = ['status', '-date'];
(不起作用,因为 Active 在 Pending 之前排序)
我的 html 中有这个:
<li ng-repeat="form in forms | orderBy:sortField:isAsc " class="row {{Contextual}}" style="margin-bottom: 2px;">
...
</li>
我一直在尝试在线搜索,但找不到任何地方。您如何自定义排序一个字段“状态”并正常排序另一个字段“日期”?
【问题讨论】:
-
在状态前使用减号,即
$scope.sortField = ['-status', '-date']; -
@Ladmerc 不起作用,因为我还有其他状态,而 Pending 不是最后一个。我也有推迟作为状态之一。
-
我明白了,所以不管其他人,pending 应该永远是第一位的吗?
标签: javascript angularjs sorting angularjs-ng-repeat