2017-02-24 7 views
0

angularjsプロジェクトでUIgridを使用しています。選択された行を取得するためにgridApi.selection.getSelectedRows()メソッドを呼び出すと、すべての行がランダムな順序で配列が返されます。理想的には、選択された同じ順序で行を取得したいとします(gridApi.selection.getSelectedRows()がキューによってサポートされているかのように)。どのようにこれを達成するための任意のアイデアですか?uiグリッドは選択された同じ順序で行を返しますか?

plunkerへのこのリンクは、私はあなたが期待どおりに動作します1.6.1するplnkrにバージョンをアップグレードする場合、私は、そこに使用された角度のそのバージョンでバグがあると思う問題http://plnkr.co/edit/gD4hiEO2vFGXiTlyQCix?p=preview

+0

ポスト私は考え –

+0

とフィドルのようなもの私はgridApi.selection.getSelectedRows()の動作を理解しようとしていたのですが、なぜそれがあまりランダムであるのですか?それは私の計画だったB :) – Mero

答えて

1

自分でキューを実装できます。

$scope.gridOnRegisterApi = function(gridApi) { 
    gridApi.selection.on.rowSelectionChanged($scope, function(row) { 
     var selections =gridApi.selection.getSelectedRows(); 
     // add sorted 
     selections.forEach(function(s){ 
     if ($scope.mySelections.indexOf(s) === -1) { 
      $scope.mySelections.push(s); 
     } 
     }); 
     // remove the ones that are not selected (use for to modify collection while iterating) 
     for (var i = $scope.mySelections.length; i >0; i--) { 
     if (selections.indexOf($scope.mySelections[i]) === -1) { 
      $scope.mySelections.splice(i, 1); 
     } 
     } 
     console.log($scope.mySelections); 
     row.entity.firstSelection = false; 
     if (row.isSelected) row.entity.firstSelection = (gridApi.selection.getSelectedCount() == 1); 
    }); 
    }; 
+1

を期待通りにあなたはそれが動作します、最新のplnkrでバージョンをアップグレードする場合、私は、そこに使用された角度のそのバージョンでバグがあると思い問題、 – Mero

関連する問題