很多時候我們在處理CURD(增刪改查)的時候需要實現批量操作數據,這時候就必須使用多選操作。
Angular 中實現如下(當然還有很多種比筆者寫的更好的方法,這里只是簡單的實現。)
demo 演示地址:http://runjs.cn/detail/2p9bnznk
代碼如下:
HTML:
<section> <pre>{{choseArr}}</pre> 全選: <input type="checkbox" ng-model="master" ng-click="all(master,tesarry)"> <div ng-repeat="z in tesarry"> <input id={{z}} type="checkbox" ng-model="x" ng-checked="master" ng-click="chk(z,x)">{{z}} </div> <a href="#" class="btn btn-danger" ng-click="delete()" > 刪除</a> </section>
頁面效果如下:(CSS采用bootstrap)
JS代碼:

1 var app = angular.module('app', []); 2 app.controller('MainCtrl',function($scope,$http,$timeout) { 3 $scope.tesarry=[1,2,3,4,5];//初始化數據 4 $scope.choseArr=[];//定義數組用於存放前端顯示 5 var str="";// 6 var len= $scope.tesarry.length;//初始化數據長度 7 var flag='';//是否點擊了全選,是為a 8 $scope.x=false;//默認未選中 9 10 $scope.all= function (c,v) {//全選 11 if(c==true){ 12 $scope.x=true; 13 $scope.choseArr = angular.copy(v); 14 flag='a'; 15 }else{ 16 $scope.x=false; 17 $scope.choseArr=[]; 18 flag='b'; 19 } 20 21 22 23 }; 24 $scope.chk= function (z,x) {//單選或者多選 25 26 27 28 if (x == true) {//選中 29 $scope.choseArr.push(z) 30 flag='c' 31 if($scope.choseArr.length==len){ 32 $scope.master=true 33 } 34 } else { 35 36 37 $scope.choseArr.splice($scope.choseArr.indexOf(z),1);//取消選中 38 } 39 40 41 if($scope.choseArr.length==0){ 42 $scope.master=false 43 }; 44 45 46 }; 47 $scope.delete= function () {// 操作CURD 48 49 if($scope.choseArr[0]==""||$scope.choseArr.length==0){//沒有選擇一個的時候提示 50 alert("請至少選中一條數據在操作!") 51 return; 52 }; 53 54 for(var i=0;i<$scope.choseArr.length;i++){ 55 alert($scope.choseArr[i]); 56 57 console.log($scope.choseArr[i]);//遍歷選中的id 58 } 59 60 61 62 };//delete end 63 64 65 66 } 67 );
以上基本實現全選,反選,多選操作