2

非常に具体的な方法でソートしようとしているAngularのオブジェクトの配列があり、それを理解できません。

サンプル Javascript は次のとおりです。

var app = angular.module('app', []);

function Ctrl($scope) {
  $scope.divisions = [      
      {'group':'d','sub':1}, 
      {'group':'a'}, 
      {'group':'z','sub':2},
      {'group':'g','sub':20},
      {'group':'g'},
      {'group':'r','sub':11}];
}

サンプル HTML は次のとおりです。

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

これがフィドルです:https://jsfiddle.net/r4nsyp2v/1/

そして、次のように表示する代わりに:

d-1
z-2
r-11
g-20
a-
g-

次のように表示したい:

g-20
r-11
z-2
d-1
a-
g-

したがって、「サブ」キーが存在する場合は最大から最小の順に表示し、その後に未定義の「サブ」キーを表示したいと思います。そして、未定義の「サブ」キーを持つオブジェクトをグループ別にアルファベット順に表示します。

私はまだトリックを見つけていません....何かアイデアはありますか?

4

1 に答える 1