【发布时间】:2016-06-24 15:06:28
【问题描述】:
我的应用程序中有一个 ui-grid,我想在用户从网格中选择一行时获取选定的行(单行可选网格)。
我知道单击按钮时如何通过 gridApi 获取选定的行。但是我无法在 row selected 事件中立即获得选定的行。
【问题讨论】:
我的应用程序中有一个 ui-grid,我想在用户从网格中选择一行时获取选定的行(单行可选网格)。
我知道单击按钮时如何通过 gridApi 获取选定的行。但是我无法在 row selected 事件中立即获得选定的行。
【问题讨论】:
需要注册api函数并使用如下图
$scope.gridOptions.onRegisterApi = function(gridApi){
$scope.gridApi = gridApi;
gridApi.selection.on.rowSelectionChanged($scope, function(row){
$scope.countRows = $scope.gridApi.selection.getSelectedRows().length;
});
gridApi.selection.on.rowSelectionChangedBatch($scope, function(row){
$scope.countRows = $scope.gridApi.selection.getSelectedRows().length;
});
};
【讨论】:
您可以绑定 ng-click 获取 $event 的行。
修改模板并引用appScope
$templateCache.put('ui-grid/uiGridViewport',
....
"<div ng-repeat=\"(rowRenderIndex, row) in rowContainer.renderedRows track by $index\"" +
"ng-click=\"grid.appScope.onClickRow(row, $event)\"" +
....
);
【讨论】:
只需添加:
gridApi.selection.on.rowSelectionChanged($scope,function(row){
console.log(row.entity);
});
在 ui grid 的 register api 函数中。 row.entity 将给出选定的行
【讨论】: