如何通过使用多个字段在同一时间排序在角?首先按组,然后按子组 例如

$scope.divisions = [{'group':1,'sub':1}, {'group':2,'sub':10}, {'group':1,'sub':2},{'group':1,'sub':20},{'group':2,'sub':1},
    {'group':2,'sub':11}];

我想把它显示为

组:子组

1-1

1-2

1-20

2-1

2-10

2-11

<select ng-model="divs" ng-options="(d.group+' - '+d.sub) for d in divisions | orderBy:'group' | orderBy:'sub'" />

当前回答

排序可以通过在angular中使用'orderBy'过滤器来完成。

两种方式: 1. 从视图 2. 从控制器

从视图

语法:

{{array | orderBy : expression : reverse}} 

例如:

 <div ng-repeat="user in users | orderBy : ['name', 'age'] : true">{{user.name}}</div>

从控制器

语法:

$filter.orderBy(array, expression, reverse);

例如:

$scope.filteredArray = $filter.orderBy($scope.users, ['name', 'age'], true);

其他回答

排序可以通过在angular中使用'orderBy'过滤器来完成。

两种方式: 1. 从视图 2. 从控制器

从视图

语法:

{{array | orderBy : expression : reverse}} 

例如:

 <div ng-repeat="user in users | orderBy : ['name', 'age'] : true">{{user.name}}</div>

从控制器

语法:

$filter.orderBy(array, expression, reverse);

例如:

$scope.filteredArray = $filter.orderBy($scope.users, ['name', 'age'], true);

AngularJs有两种过滤器,一种在HTML中使用{{}},另一种在实际的JS文件中…

你可以使用以下方法来解决你的问题:

{{ Expression | orderBy : expression : reverse}}

如果你在HTML中使用它或使用类似的东西:

$filter('orderBy')(yourArray, yourExpression, reverse)

reverse在末尾是可选的,它接受一个布尔值,如果它为真,它将为你反转数组,非常方便地反转你的数组…

<select ng-model="divs" ng-options="(d.group+' - '+d.sub) for d in divisions | orderBy:['group','sub']" />

用户阵列,而不是多个orderBY

请看这个:

http://jsfiddle.net/JSWorld/Hp4W7/32/

<div ng-repeat="division in divisions | orderBy:['group','sub']">{{division.group}}-{{division.sub}}</div>

确保排序对最终用户来说不会太复杂。我一直认为按组和子组排序理解起来有点复杂。如果它是一个技术终端用户,它可能是OK的。