我正在使用AngularUI-Grid的ng-grid,并有一个行选择复选框。它也在标题中给了我一个复选框。
如果用户选择标题中的复选框,我想在$ scope中触发一些事件/方法,有什么办法吗?我想通过指定: - checkboxHeaderTemplate,我会调用toggleSelectAll()方法。但它没有发生。任何线索? 还有任何$ scope的事件或方法,可以在多行选择或取消选择时调用。
$scope.gridOptions = {
data: 'dataList',
enablePaging: true,
showFooter: true,
showFilter: true,
totalServerItems: 'totalVehicles',
pagingOptions: $scope.VehpagingOptions,
filterOptions: $scope.VehfilterOptions.filterText,
showSelectionCheckbox: true,
beforeSelectionChange: $scope.beforeVehicleSelectionChange,
checkboxHeaderTemplate: '<input class="ngSelectionHeader" type="checkbox" ng-show="multiSelect" ng-model="allSelected" ng-change="toggleSelectAll(allSelected, true)"/>'
};
答案 0 :(得分:5)
我发现如果选择了多行,ng-grid会将项目数组发送到afterSelectionChange。我使用了这个(这解决了我的问题): -
$scope.afterVehicleSelectionChange = function (rowItem, event) {
if (rowItem.length) {
_.each(rowItem, function (item) {
updateItemOnSelectionChange(item);
});
} else {
updateItemOnSelectionChange(rowItem);
}
return true;
};