Как получить выбранные строки на ngClick в agGrid-angularJs? - PullRequest
0 голосов
/ 08 апреля 2019

Вызов gridOptions.api.getSelectedRows() в ngClick возвращает [], но при вызове gridOptions.onRowClicked он возвращает выбранные rowData правильно.Почему api.getSelectedRows() возвращается пустым на ngClick?Как получить выбранные строки на ngClick?

Я пытаюсь использовать agGrid в моем проекте angularJs.Мне нужно получить выбранные строки в качестве входных данных для редактирования / обновления формы, когда нажата кнопка редактирования, добавляющая к определенной строке.

Вот код, который я использовал для вызова updateRecordкоторый затем пытается getSelectedRows (но не удалось).

gridOptions.rowData = genRows(opa.fieldParams, opa.values, function (row) {
  row.verticalTailer = `<i class="far fa-edit" style="cursor: pointer;"
  ng-click="$root.$broadcast('table:updateRecord', {name: '${opa.name}'})">
  </i>`;
});

enter image description here

Ответы [ 2 ]

0 голосов
/ 09 апреля 2019

Я погрузился в образец conde ag-grid angularjs в документе ag-grid и обнаружил, что могу просто использовать data (тихо добавленный ag-grid в область действия) для ссылки на текущую строку в шаблоне,так что я могу просто изменить ng-click="$root.$broadcast('table:updateRecord', {name: '${opa.name}'} на ng-click="$root.$broadcast('table:updateRecord', {name: '${opa.name}', data: data} в коде моего шаблона, не нужно вызывать getSelectedRows () в контроллере.

0 голосов
/ 08 апреля 2019

Вы можете использовать ag-grid api и использовать его. Они дали встроенную функцию для получения выбранных строк из сетки.

Для этого, во-первых, вы должны зарегистрировать API Ag-Grid в вашей области видимости.

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

И тогда вы можете использовать ваш $ scope.gridApi для ngClick, как указано ниже, где getSelectedRows () будет вызываться для ngClick.

$scope.getSelectedRows= function(){
    $scope.selectedRows= $scope.gridApi.selection.getSelectedRows();
}
...