Angular ui-grid 3.0获取选定的行

kit*_*sei 4 javascript angularjs angular-ui-grid

这个答案说明这段代码:

$scope.gridOptions.onRegisterApi = function(gridApi){
  $scope.gridApi = gridApi;
  $scope.mySelectedRows=$scope.gridApi.selection.getSelectedRows();
}
Run Code Online (Sandbox Code Playgroud)

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

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

Rom*_*n K 6

我让它工作而不必使用事件触发器。我添加了一个功能,将其绑定到一个按钮,并且仅在需要时才可以检索所选项目。

$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);
};
Run Code Online (Sandbox Code Playgroud)


Kat*_*hir 5

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

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

如果要对所选行进行进一步分析,可以为行选择注册一个侦听器并对其进行操作.

 $scope.gridOptions.onRegisterApi = function(gridApi){
      //set gridApi on scope
      $scope.gridApi = gridApi;
      gridApi.selection.on.rowSelectionChanged($scope,function(row){
        var msg = 'row selected ' + row.isSelected;
        $log.log(msg);
      });

      gridApi.selection.on.rowSelectionChangedBatch($scope,function(rows){
        var msg = 'rows changed ' + rows.length;
        $log.log(msg);
      });
    };
Run Code Online (Sandbox Code Playgroud)