Dónde puedo obtener los elementos seleccionados de Angular ui-grid


Probando la ui-grid angular (ng-grid v.3.0). No puede por la vida de mí encontrar la fila seleccionada. Solo quiero agarrar las filas o incluso el ID de fila de fila cuando un usuario hace clic en ella. Encontré el comentario principal aquí, pero creo que esto está desactualizado: ¿Obteniendo filas selectas de ng-grid?

¿Alguien sabe dónde se almacena el gridOptions.selectedItems en la versión 3.0?

Author: Community, 2014-10-04

4 answers

¿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 la interfaz de usuario.Grid.registro del módulo de selección en su aplicación
  2. registre gridApi y use gridApi.selección para acceder a getSelectedRows ()
 34
Author: Sycomor,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-10-04 01:33:37

Además de los pasos anteriores https://stackoverflow.com/a/26188783/2658127 , es posible 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 llama a selectRow() desde la plantilla.

Esto es para cualquiera que se haya confundido como yo, teniendo en cuenta el hecho de que ui-grid no tiene la mejor documentación (especialmente para esta parte selecta).

 23
Author: Rajush,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:10:36

El enfoque más fácil es:

  1. Registre la gridApi agregando esto a su controlador:

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

  2. Acceder a la matriz de elementos seleccionados:

    $scope.myGridApi.selection.getSelectedRows();

 15
Author: Arashsoft,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-08-31 17:44:17

Con grid ui debe usar selection.on.rowSelectionChanged para actualizar una variable de ámbito que almacena el SelectedItem. De esta manera puede utilizar el valor en una expresión de enlace.

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);

Utilice una matriz an en lugar de un objeto plano si necesita selección múltiple.

 0
Author: Panciz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-06-04 14:51:27