如何访问行选择上的行数据

How to access row data upon row Selection

我正在使用 ui-grid 来显示数据。

我想在选择一行时访问列的值。我已经实施了 rowSelectionChange 事件,但我似乎无法访问数据。

gridOptions:

$scope.gridOptions = {
paginationPageSizes: [10, 25, 50],
paginationPageSize: 25,   
useExternalPagination: true,
useExternalSorting: true,
multiSelect: false,
enableSelectAll: false,
columnDefs: [
  { name: 'Name', field: 'properties.Name'},
  { name: 'Address', field: 'properties.Address'},
  { name: 'PhoneNumber', field: 'properties.PhoneNumber'}
],

onRegisterApi: function(gridApi) {
    $scope.gridApi = gridApi;
    $scope.mySelectedRows = $scope.gridApi.selection.getSelectedRows();
    gridApi.selection.on.rowSelectionChanged($scope, function(row) {
        var msg = row.entity.Name;
        alert("Row Selected! " + msg);
    });
...

我错过了什么?

您应该使用 row.entity.name 而不是 row.entity。Name

$scope.gridOptions = {
paginationPageSizes: [10, 25, 50],
paginationPageSize: 25,   
useExternalPagination: true,
useExternalSorting: true,
multiSelect: false,
enableSelectAll: false,
columnDefs: [
  { name: 'Name', field: 'properties.Name'},
  { name: 'Address', field: 'properties.Address'},
  { name: 'PhoneNumber', field: 'properties.PhoneNumber'}
],

onRegisterApi: function(gridApi) {
    $scope.gridApi = gridApi;
    $scope.mySelectedRows = $scope.gridApi.selection.getSelectedRows();
    gridApi.selection.on.rowSelectionChanged($scope, function(row) {
        var msg = row.entity.name; //change Name -> name.
        alert("Row Selected! " + msg);
    });
...

通过添加断点并查看 row.entity 的值找到解决方案。将其更改为 row.entity.properties.Name 解决了我的问题。