2015-10-01 3 views

ответ

4

В наши дни может быть более элегантное решение, но в версии ui-grid, с которой я работал несколько месяцев назад, я использовал следующую служебную функцию, чтобы получить индекс строки.

getRowIndex: function (row, grid) { 
    var rowIndex = -1; 
    for (var i = 0; i < grid.renderContainers.body.visibleRowCache.length; i++) { 
     if (row.uid === grid.renderContainers.body.visibleRowCache[i].uid) { 
      rowIndex = i; 
      break; 
     } 
    } 
    return rowIndex; 
} 

Вы можете получить ссылку на строку из многих событий, в том числе rowSelectionChanged события.

Чтобы получить ссылку на сетке ...

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

Позвони

var myIndex = myService.getRowIndex(row, $scope.gridApi.grid); 

Обратите внимание, что этот показатель меняется, когда вы повторно рода или изменить данные. Он основан на индексе данных, как видит пользователь.

3

В контроллере grid_options комплекте:

onRegisterApi: function(gridApi) { 
       $scope.gridApi = gridApi; 
       gridApi.selection.on.rowSelectionChanged($scope,function(row){ 
       var removeRowIndex = $scope.grid_Options.data.indexOf(row.entity); 
       }); 
       } 

$scope.grid_Options.data фактически данные, которые вы предоставили в сетке.

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