2013-12-23 35 views
1

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

回答

5

我發現如果選擇多行,ng-grid會將項目數組發送到afterSelectionChange。我用此代替(這解決了我的問題): -

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