AngularJs 简单实现全选,多选操作

很多时候我们在处理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 );
View Code

 

  以上基本实现全选,反选,多选操作

posted @ 2015-07-06 13:56  薄祸  阅读(21821)  评论(2编辑  收藏  举报