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?
4 answers
¿Es esto lo que estás buscando ? http://ui-grid.info/docs/#/tutorial/210_selection
- 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
- registre gridApi y use gridApi.selección para acceder a getSelectedRows ()
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).
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:
-
Registre la gridApi agregando esto a su controlador:
$scope.gridOptions.onRegisterApi = function(gridApi) { $scope.myGridApi = gridApi; };
-
Acceder a la matriz de elementos seleccionados:
$scope.myGridApi.selection.getSelectedRows();
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.
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