uigridconstants sort gridapi enable columndefs column javascript angularjs angular-ui-grid

javascript - sort - ¿Dónde puedo obtener elementos seleccionados de UI-grid angular?



ui-grid angularjs (4)

Prueba de ui-grid angular (ng-grid v.3.0). No puedo por mi vida encontrar la fila seleccionada. Solo quiero tomar las filas o incluso remar el ID de la fila cuando un usuario hace clic en ella. Encontré el comentario más importante aquí, pero creo que esto está desactualizado: ¿ Cómo obtener filas seleccionadas de ng-grid?

¿Alguien sabe dónde se está almacenando gridOptions.selectedItems en 3.0?


¿Es esto lo que estás buscando? http://ui-grid.info/docs/#/tutorial/210_selection

  1. Active las capacidades de selección de cuadrícula con la etiqueta ui-grid-selection (y el registro del módulo ui.grid.selection en su aplicación
  2. registre gridApi y use gridApi.selection para acceder a getSelectedRows ()

Además de los pasos anteriores https://.com/a/26188783/2658127 , puede que tenga que invocarlo a través de un evento ng-click para obtener el valor / objeto real. Al menos así es como lo tenía funcionando.

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

Y llame a selectRow () desde la plantilla.

Esto es para cualquiera que haya estado confundido como yo, considerando el hecho de que ui-grid no tiene la mejor documentación (especialmente para esta porción selecta).


Con grid ui, debe usar selection.on.rowSelectionChanged para actualizar una variable de ámbito que almacena el elemento seleccionado. De esta forma, puede usar el valor en una expresión vinculante.

var SelectController = function($scope) { ... $scope.selectedItem = null; $scope.gridOptions = { data : ''articles'', enableRowSelection : true, multiSelect : false, enableRowHeaderSelection : false, ... }; $scope.gridOptions.onRegisterApi = function(gridApi) { // set gridApi on scope this.$scope.gridApi = gridApi; }.bind(this); $scope.gridOptions.onRegisterApi = function(gridApi) { // set gridApi on scope this.$scope.gridApi = gridApi; this.$scope.gridApi.selection.on.rowSelectionChanged($scope, function(row) { this.$scope.selectedItem = row.entity; }.bind(this)); }.bind(this);

Use una matriz en lugar de un objeto simple si necesita una selección múltiple.


El enfoque más fácil es:

  1. Registre gridApi agregando este su controlador:

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

  2. Acceda a la matriz de elementos seleccionados:

    $scope.myGridApi.selection.getSelectedRows();