[英]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.