2015-10-15 2 views
4

У меня есть две сетки, у которых есть строки, которые я могу выбрать. Я хочу иметь возможность получить данные в выбранных строках в другой объект данных, чтобы я мог передать его в бэкэнд-сервис. Вот соответствующий код:Невозможно получить выделенные строки с помощью Углового интерфейса UI

angular.module('gridPanel',['ui.bootstrap','ui.grid', 'ui.grid.edit', 'ui.grid.rowEdit', 'ui.grid.cellNav', 'ui.grid.selection']) 
.controller('GridPanelController', function($scope, $log, referenceDataService){ 

    $scope.nameGrid = { 
     enableRowSelection: true, 
     enableRowHeaderSelection: false, 
     multiSelect: true, 
     onRegisterApi: function(gridApi) { 
      $scope.gridApiNames= gridApi; 
     }, 
     columnDefs: [ 
      {name: 'Name', field: 'name'} 
      {name: 'Description', field: 'description'} 
     ], 
     data:[] 
    }; 

    $scope.regionsGrid = { 
     enableRowSelection: true, 
     enableRowHeaderSelection: false, 
     multiSelect: true, 
     onRegisterApi: function(gridApi) { 
      $scope.gridApiRegions = gridApi; 
     }, 
     columnDefs: [ 
      {name: 'Region', field: 'region'} 
     ], 
     data:[] 
    }; 

    referenceDataService.getAllNames().then(function (data){ 
     $scope.nameGrid.data = data; 
    }); 

    referenceDataService.getRegions().then(function (data){ 
     $scope.regionsGrid.data = data; 
    }); 

    $scope.debug = function(obj) { 
     var dataObj = { 
      names: [], 
      regions: [] 
     }; 

     dataObj.regions = $scope.gridApiRegions.selection.getSelectedRows(); 
     dataObj.names= $scope.gridApiNames.selection.getSelectedRows(); 

     $log.log(JSON.stringify(dataObj, null, 4)); 
    }; 
}); 

Однако, когда я проверяю, что говорит журнал в консоли, он показывает мне, что dataObj.regions и dataObj.names оба пустые массивы. Данные отображаются в реальных таблицах и ничего не происходит, когда я нажимаю на них - я могу выбрать несколько строк без проблем. Проблема возникает только тогда, когда я нажимаю кнопку отправки, которая теперь направляет $ scope.debug, чтобы я мог просматривать объекты в консоли. У меня есть другие поля в форме, в основном текстовые поля, которые также отлично отображаются, когда я нажимаю на отладку в журнале консоли, поэтому единственное место с проблемой - это получение выбранных строк. Заранее спасибо!

Редакция:

: также, когда я пытаюсь зарегистрировать только часть 'getSelectedRows', он возвращает пустой массив.

ответ

2

Обнаружена проблема. Это связано с тем, что я использовал одни и те же сетки в другом месте на веб-странице (в рамках модального) для отображения той же информации. Как только я сделал два набора сеток, проблема была исправлена. Все еще кажется неэффективным иметь два набора тех же сеток, которые служат одной и той же цели, но я думаю, может быть, это как раз то, что это или что-то еще?

Смежные вопросы