Búsqueda de sitios web

javascript - orderBy múltiples campos en Angular


¿Cómo ordenar utilizando múltiples campos al mismo tiempo en Angular? Primero por grupo y luego por subgrupo, por ejemplo

$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}];

Quería mostrar esto como

grupo : Subgrupo

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'" />

Respuesta #1

Por favor, mira esto:

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

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

Respuesta #2

Si quieres ordenar por múltiples campos dentro del controlador, usa esto

$filter('orderBy')($scope.property_list, ['firstProp', 'secondProp']);

Véase también https://docs.angularjs.org/api/ng/filter/orderBy

Respuesta #3

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

Usar array de usuario en lugar de múltiples orderBY

Artículos relacionados