Где я могу получить угловые UI-grid выбранные элементы
тестирование угловой ui-grid (ng-grid V.3.0). Никак не могу найти выбранную строку. Я просто хочу захватить строки или даже идентификатор строки строки, когда пользователь нажимает на нее. Нашел верхний комментарий здесь, но я думаю, что это устарело:получение выбранных строк из ng-grid?
кто-нибудь знает, где gridOptions.selectedItems
хранится в 3.0?
4 ответов
Это то, что вы ищете ? http://ui-grid.info/docs/#/tutorial/210_selection
- активировать возможности выбора сетки с помощью тега ui-grid-selection (и ui.сетка.Регистрация модуля выбора в приложении
- зарегистрируйте gridApi и используйте gridApi.выбор для доступа к getSelectedRows ()
в дополнение к шагам выше https://stackoverflow.com/a/26188783/2658127, Возможно, вам придется вызвать его через событие ng-click, чтобы получить фактическое значение/объект. По крайней мере, у меня так получилось.
Eg:
$scope.selectRow = function(){
$scope.gridApi.selection.getSelectedRows();
};
и вызовите selectRow () из шаблона.
Это для всех, кто был смущен, как я, учитывая тот факт, что ui-grid не имеет лучшей документации (специально для этой части выбора).
самый простой подход:
-
зарегистрируйте gridApi, добавив этот ваш контроллер:
$scope.gridOptions.onRegisterApi = function(gridApi) { $scope.myGridApi = gridApi; };
-
доступ к массиву выбранных элементов:
$scope.myGridApi.selection.getSelectedRows();
С сеткой ui вы должны использовать selection.on.rowSelectionChanged
чтобы обновить переменную области, в которой хранится selectedItem.
Таким образом, вы можете использовать значение в выражении привязки.
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);
используйте массив вместо простого объекта, если вам нужен множественный выбор.