orderBy multiple fields in Angular
Sorting can be done by using 'orderBy' filter in angular.
Two ways: 1. From view 2. From controller
- From view
Syntax:
{{array | orderBy : expression : reverse}}
For example:
<div ng-repeat="user in users | orderBy : ['name', 'age'] : true">{{user.name}}</div>
- From controller
Syntax:
$filter.orderBy(array, expression, reverse);
For example:
$scope.filteredArray = $filter.orderBy($scope.users, ['name', 'age'], true);
<select ng-model="divs" ng-options="(d.group+' - '+d.sub) for d in divisions | orderBy:['group','sub']" />
User array instead of multiple orderBY
Please see this:
http://jsfiddle.net/JSWorld/Hp4W7/32/
<div ng-repeat="division in divisions | orderBy:['group','sub']">{{division.group}}-{{division.sub}}</div>
If you wants to sort on mulitple fields inside controller use this
$filter('orderBy')($scope.property_list, ['firstProp', 'secondProp']);
See also https://docs.angularjs.org/api/ng/filter/orderBy