繁体   English   中英

Angular ui-grid 3.0获取选定的行

[英]Angular ui-grid 3.0 get selected rows

这个答案说明这段代码:

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

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

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

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

此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);
      });
    };

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

 $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); }; 

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

gridApi.selection.on.rowSelectionChangedBatch($scope,function(rows){
                    console.log(row);
                  });
$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}}之后。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM