标题上的ng-grid选择事件复选框

时间:2013-12-23 07:22:50

标签: angularjs angular-ui ng-grid

我正在使用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)"/>'
          };

1 个答案:

答案 0 :(得分:5)

我发现如果选择了多行,ng-grid会将项目数组发送到afterSelectionChange。我使用了这个(这解决了我的问题): -

 $scope.afterVehicleSelectionChange = function (rowItem, event) {
            if (rowItem.length) {
                _.each(rowItem, function (item) {
                    updateItemOnSelectionChange(item);
                });
            } else {
                updateItemOnSelectionChange(rowItem);
            }
            return true;
        };