<div class="checkbox"> <label> <input type="checkbox" value="0" name="全选" ng-checked="isSelected('0')" ng-click="updateSelection($event,'0')">全选 </label> <label> <input type="checkbox" value="1" name="BANNER" ng-checked="isSelected('1')" ng-click="updateSelection($event,'1')">BANNER </label> <label> <input type="checkbox" value="2" name="资料库" ng-checked="isSelected('2')" ng-click="updateSelection($event,'2')">资料库 </label> <label> <input type="checkbox" value="3" name="最新公告" ng-checked="isSelected('3')" ng-click="updateSelection($event,'3')">最新公告 </label> </div>
$scope.selected=[]; var updateSelected=function(action,value){ if(action=="add"&&$scope.selected.indexOf(value)==-1){ $scope.selected.push(value); } if(action=="remove"&&$scope.selected.indexOf(value)!=-1){ var idx=$scope.selected.indexOf(value); $scope.selected.splice(idx,1); } } $scope.isSelected=function(value){ if(value=="0"){ return $scope.selected.indexOf("1")>=0&&$scope.selected.indexOf("2")>=0&&$scope.selected.indexOf("3")>=0; }else{ return $scope.selected.indexOf(value)>=0; } } $scope.updateSelection=function(event,value){ var checkbox=event.target; var action=(checkbox.checked?"add":"remove"); if(value=="0"){ updateSelected(action,"1"); updateSelected(action,"2"); updateSelected(action,"3"); }else{ updateSelected(action,value,checkbox.name); } }