390

角度で複数のフィールドを同時に使用してソートする方法は? 例として、最初にグループで、次にサブグループで

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

8 に答える 8

677

Please see this:

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

<div ng-repeat="division in divisions | orderBy:['group','sub']">{{division.group}}-{{division.sub}}</div>
于 2013-06-11T06:26:31.497 に答える
50

コントローラー内の複数のフィールドで並べ替えたい場合は、これを使用します

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

https://docs.angularjs.org/api/ng/filter/orderByも参照してください

于 2014-10-23T11:41:51.923 に答える
6

AngularJs フィルターを実行するには 2 つの方法があります。1 つは {{}} を使用する HTML で、もう 1 つは実際の JS ファイルで...

次を使用して問題を解決できます。

{{ Expression | orderBy : expression : reverse}}

HTMLで使用するか、次のようなものを使用する場合:

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

逆は最後にオプションです。ブール値を受け入れ、それが真の場合、配列を逆にします。配列を逆にする非常に便利な方法です...

于 2016-04-10T12:22:56.513 に答える
6

angularで「orderBy」フィルターを使用してソートを行うことができます。

2 つの方法: 1. ビューから 2. コントローラーから

  1. ビューから

構文:

{{array | orderBy : expression : reverse}} 

例えば:

 <div ng-repeat="user in users | orderBy : ['name', 'age'] : true">{{user.name}}</div>
  1. コントローラから

構文:

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

例えば:

$scope.filteredArray = $filter.orderBy($scope.users, ['name', 'age'], true);
于 2017-03-20T17:14:11.150 に答える