Angular ui-grid 3.0获取选定的行

时间:2015-05-21 07:10:08

标签: javascript angularjs angular-ui-grid

This answer声明此代码:

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

应该工作以获取所选行,但对我来说它总是返回[],以便跟踪每次触发选择事件时我必须调用gridApi.selection.getSelectedRows()的所选行,这是正确的吗?< / p>

我想要实现的是自己的页脚跟踪网格选定行的数量,这是实现此目的的正确方法吗?

4 个答案:

答案 0 :(得分:5)

已经有一个显示页脚中所选元素数量的示例。

此plnkr显示所选项目页脚。 http://plnkr.co/edit/jc1YPCXBmfOKWyu8sLkx?p=preview

如果您想对所选行进行进一步分析,您可以为行选择注册一个监听器并对其进行操作。

time_diff = (datetime2 - datetime1).total_seconds()

答案 1 :(得分:4)

我无需使用事件触发器即可工作。我添加了一个功能,将其绑定到一个按钮,只有在需要时才能检索所选项目。

$scope.gridOptions = {
  data: 'data',
  enableRowSelection: true,
  onRegisterApi: function(gridApi) { //register grid data first within the gridOptions
    $scope.gridApi = gridApi;
  }
};
//this is the on click function
$scope.getCurrentSelection = function() {
  var currentSelection = $scope.gridApi.selection.getSelectedRows();
  console.log(currentSelection);
};

答案 2 :(得分:0)

当selectAll功能激活时,此功能对我有用,我已获得所有选定的行。

gridApi.selection.on.rowSelectionChangedBatch($scope,function(rows){
                    console.log(row);
                  });

答案 3 :(得分:0)

$scope.gridOptions = {
  data: 'data',
  enableRowSelection: true,
  onRegisterApi: function(gridApi) { //register grid data first within the gridOptions
    $scope.gridApi = gridApi;
  }
};

可以直接在模板html中访问变量{{vm.gridApi.selection.getSelectedRows()。length}}。