angular ui-网格事件:选中行
angular ui-grid event: row selected
我正在尝试 enable/disable 基于在 ui- 网格上选择一行的按钮。如果没有选择行,该按钮将被禁用。
我发现这个 plunkr 使用旧的 ng-grid 方式在选择一行后触发事件。
$scope.gridOptions = {
data: 'myData',
selectedItems: $scope.selections,
enableRowSelection: true,
afterSelectionChange:function() {
if ($scope.selections != "" ) {
$scope.disabled = false;
} else {
$scope.disabled = true;
}
}
};
不幸的是它不起作用,我在 ui-grid documentation.
中没有发现此类事件的迹象
如何使用 ui-grid 实现?
在ui-grid中,你在事件"rowSelectionChanged"
上注册了一个回调函数
$scope.gridOptions.onRegisterApi = function (gridApi) {
$scope.gridApi = gridApi;
gridApi.selection.on.rowSelectionChanged($scope, callbackFunction);
gridApi.selection.on.rowSelectionChangedBatch($scope, callbackFunction);
}
}
function callbackFunction(row) {
var msg = 'row selected ' + row.isSelected; $log.log(msg);
})
我认为你应该看看 ui-grid: http://ui-grid.info/docs/#/tutorial/210_selection 中的教程页面。在我看来,API 页面很糟糕 :(.
您可以首先获取当前在grid
中选择的所有记录:
$scope.rowsSelected = $scope.gridApi.selection.getSelectedRows();
现在我们可以使用以下方法获取此数组的长度:
$scope.countRows = $scope.rowsSelected.length;
基于$scope.countRows>0
或0
,您可以使用
启用或禁用按钮
ng-disabled = "countRows"
$scope.countRows=0;
$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;
});
};
在HTML这边你可以使用这样的东西
<button class="custom-button" ng-disabled="countRows<=0" ng-click="submit()">Details</button>
我正在尝试 enable/disable 基于在 ui- 网格上选择一行的按钮。如果没有选择行,该按钮将被禁用。
我发现这个 plunkr 使用旧的 ng-grid 方式在选择一行后触发事件。
$scope.gridOptions = {
data: 'myData',
selectedItems: $scope.selections,
enableRowSelection: true,
afterSelectionChange:function() {
if ($scope.selections != "" ) {
$scope.disabled = false;
} else {
$scope.disabled = true;
}
}
};
不幸的是它不起作用,我在 ui-grid documentation.
中没有发现此类事件的迹象如何使用 ui-grid 实现?
在ui-grid中,你在事件"rowSelectionChanged"
上注册了一个回调函数 $scope.gridOptions.onRegisterApi = function (gridApi) {
$scope.gridApi = gridApi;
gridApi.selection.on.rowSelectionChanged($scope, callbackFunction);
gridApi.selection.on.rowSelectionChangedBatch($scope, callbackFunction);
}
}
function callbackFunction(row) {
var msg = 'row selected ' + row.isSelected; $log.log(msg);
})
我认为你应该看看 ui-grid: http://ui-grid.info/docs/#/tutorial/210_selection 中的教程页面。在我看来,API 页面很糟糕 :(.
您可以首先获取当前在grid
中选择的所有记录:
$scope.rowsSelected = $scope.gridApi.selection.getSelectedRows();
现在我们可以使用以下方法获取此数组的长度:
$scope.countRows = $scope.rowsSelected.length;
基于$scope.countRows>0
或0
,您可以使用
ng-disabled = "countRows"
$scope.countRows=0;
$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;
});
};
在HTML这边你可以使用这样的东西
<button class="custom-button" ng-disabled="countRows<=0" ng-click="submit()">Details</button>