Obtenir des lignes de sélection de ng-grid?

comment créer (ou Accéder) un tableau de lignes sélectionnées dans mon ng-grid ?


Documentation (passez à" Options de grille")

id                 | default value | definition
-----------------------------------------------
selectedItems      |       []      | all of the items selected in the grid.
                                     In single select mode there will only
                                     be one item in the array.

de l'index.html

<body ng-controller="MyCtrl">
    <div class="gridStyle" ng-grid="gridOptions"></div>

    <h3>Rows selected</h3>
    <pre>{{selectedItems}}</pre>
</body>

principal.js

var app = angular.module('myApp', ['ngGrid']);
app.controller('MyCtrl', function($scope) {
    $scope.myData = [{name: "Moroni", age: 50},
                     {name: "Tiancum", age: 43},
                     {name: "Jacob", age: 27},
                     {name: "Nephi", age: 29},
                     {name: "Enos", age: 34}];
    $scope.gridOptions = { data: 'myData' };
});

Plnkr pour le code (et exécuter)

12
demandé sur AardVark71 2013-06-01 21:27:32

5 réponses

basé sur le doc, selectedItems devrait être une propriété de $scope.gridOptions , alors essayez ceci:

contrôleur

$scope.gridOptions = { data: 'myData', selectedItems: [] };

HTML

<pre>{{gridOptions.selectedItems}}</pre>
23
répondu Ye Liu 2013-06-01 17:38:16

Vous pouvez obtenir les éléments sélectionnés de ng-grille 2.x de:

$scope.gridOptions.$gridScope.selectedItems
7
répondu ThanhHH 2014-08-06 16:31:08

dans la version 3 vous pouvez faire:

$scope.gridOptions.onRegisterApi = function(gridApi){

  $scope.gridApi = gridApi;
  $scope.mySelectedRows=$scope.gridApi.selection.getSelectedRows();
}

se référer à http://ui-grid.info/docs/#/api/ui.grid.selection.api:PublicApi pour plus d'information.

4
répondu Ewald Stieger 2014-11-27 09:01:44

pour 3.0, vous pouvez capturer les lignes comme elles sont sélectionnées comme ceci:

$scope.gridOptions.onRegisterApi = function(gridApi){
  //set gridApi on scope
  $scope.gridApi = gridApi;
  gridApi.selection.on.rowSelectionChanged($scope,function(row){
    var msg = 'row selected ' + row.isSelected;
    $log.log(msg);
  });
};

plus d'informations ici: http://ui-grid.info/docs/#/tutorial/210_selection

3
répondu genegc 2014-10-05 13:15:28

j'essaie de lire une liste de lignes sélectionnées pour le moment. L'option semble avoir déplacé, je peux maintenant dans:

$scope.gridOptions.ngGrid.config.selectedItems

Il semble être en lecture seule

1
répondu PaulL 2014-07-18 23:14:40