2014-10-04 17 views
35

Angular ui-grid testen (ng-grid v.3.0). Kann nicht für das Leben von mir die ausgewählte Zeile finden. Ich möchte nur die Zeilen oder sogar Zeile ID der Zeile greifen, wenn ein Benutzer darauf klickt. Ich habe den Top-Kommentar hier gefunden, aber ich denke, das ist veraltet: Getting select rows from ng-grid?Wo kann ich angular ui-grid auswählen?

Weiß jemand, wo die gridOptions.selectedItems in 3.0 gespeichert wird?

Antwort

34

Ist das wonach Sie suchen? http://ui-grid.info/docs/#/tutorial/210_selection

  1. aktivieren Gitterauswahlfähigkeiten mit dem ui-Grid-Auswahl-Tag (und ui.grid.selection Modul Anmeldung in der App
  2. Register gridApi und verwenden gridApi.selection getSelectedRows zuzugreifen()
23

Zusätzlich zu den oben genannten Schritte https://stackoverflow.com/a/26188783/2658127, können Sie es durch ein ng-Click-Ereignis aufrufen müssen, um den ist-Wert/Objekt zu erhalten. Zumindest dest~~POS=HEADCOMP das ist, wie ich hatte es funktioniert.

Eg: 
$scope.selectRow = function(){ 
    $scope.gridApi.selection.getSelectedRows(); 
}; 

Und rufen Sie selectRow() aus der Vorlage.

Dies ist für jeden, der verwirrt worden ist, wie ich, in Anbetracht der Tatsache, dass Ui-Grid nicht die beste Dokumentation (speziell für diesen ausgewählten Teil) hat.

+1

Danke Rajush, ich schätze die zusätzlichen Informationen! – Mlalahoi

0

Mit Grid Ui müssen Sie die verwenden, um eine Bereichsvariable zu aktualisieren, die das selectedItem speichern. Auf diese Weise können Sie den Wert in einem Bindungsausdruck verwenden.

Verwenden Sie ein Array anstelle eines einfachen Objekts, wenn Sie mehrere Auswahlmöglichkeiten benötigen.

15

Der einfachste Ansatz ist:

  1. die gridApi registrieren, indem Sie diese dem Controller hinzufügen:

    $scope.gridOptions.onRegisterApi = function(gridApi) { $scope.myGridApi = gridApi; };

  2. Besuchen Sie das Array der ausgewählten Elemente:

    $scope.myGridApi.selection.getSelectedRows();