angular checkbox 全选和反选功能

最近做写出了angularjs 全选和反选的数据绑定功能,分享出来给大家,有什么不对的地方请大家多多指教,angularjs 强大的数据绑定功能完全展现了新一代的web 开发的,完美的和html 应用在一起,实现新一代的技术完美结合。废话就不多说了,下面看代码:

1.html 页面:

<table class="table" >    <!--主机组主机列表-->    <tr style="background-color: #555555;color:white;">        <th><input type="checkbox"  parentName="hostId" ng-model="master" ng-checked="master"  ng-click="hostgrouphostall(master,tesarry)">            选择:        </th>        <th>主机名称</th>        <th>所属集群</th>    </tr>    <tbody ng-repeat="item in hostgrouphostList"  >    <tr >        <td><input  type="checkbox" name="hostId"  ng-checked="master"   ng-model="item.selectChk">        </td>        <td>{{item.hostName }}</td>        <td>{{item.clusterName }}</td>    </tr></table>2.angular js 控制器:(function (angular) {    var platformApp = angular.module(‘emsApp‘);    //主机页面控制器    platformApp.registerController(‘hostgroupController‘, function ($scope, $http) {        $scope.currentPage = 1;        $scope.totalPage = 1;        $scope.pageSize =  $scope.configInfo.pageSize;        $scope.paginationConf = {};        $scope.hostgroupRow = -1;        $scope.item = null;//获取修改对象data        $scope.message = false;        $scope.success = false;        $scope.fail = false;        $scope.saveFlag = false;//是更新操作还是添加        $scope.hostInfoList = null;//组机集合信息        console.log(‘初始化host控制器...‘)        var dimName = null;        var homeName = null;        var id = 0;   //确定发布配置文件内容confirmpublicfile        $scope.confirmpublicfile=function(item){            var item= new Object();            var hostList=new Array();//主机列表            var fileList=new Array();//文件列表            var operType=new Array();//发布还是回滚            var hostcheck = false;//主机列表默认选择为false            var filecheck = false;//文件列表默认选择为false            var params;            //循环读取组机组主机列表就需要重新组装            for(var i=0;i<$scope.hostgrouphostList.length;i++) {                hostcheck = $scope.hostgrouphostList[i].selectChk;                if (hostcheck) {                    var hh = new Object();                    hh.hostGroupHostId = $scope.hostgrouphostList[i].hostGroupHostId;//组机组主机ID                    hh.hostName = $scope.hostgrouphostList[i].hostName;//主机名称                    hostList.push(hh);//重新组装到hostList                }            }            //没有要选择的发布主机            if(hostList.length<=0)            {                alert("请选择要发布的主机");                return;            }            item.operType="deploy";//操作类型是发布            item.hostList = hostList;//将选择的发布主机列表重新赋值给hostList           //如果选择的是配置内容列表就需要重新组装            for (var j = 0; j < $scope.configList.length; j++) {                filecheck = $scope.configList[j].selectChkcont;                if (filecheck) {                    var cc = new Object();                    cc.fileName = $scope.configList[j].fileName;//文件名                    cc.configContentId = $scope.configList[j].configContentId;//配置文件内容Id                    cc.path = $scope.configList[j].path;//配置文件路径                    cc.content = $scope.configList[j].content;//配置文件内容                    cc.fileUrl = $scope.configList[j].fileUrl;//配置文件内容fileUrl                    fileList.push(cc);//重新赋值给文件列表                }            }            //没有选择要发布的文件            if(fileList.length<=0)            {                alert("请选择要发布的文件");                return;            }            if (!confirm("确认要发布吗?")) {                return;            }            item.fileList = fileList;//将选择的配置文件列表赋值给fileList            var json=angular.toJson(item);            console.log("json:"+json);            //调用 kitty 服务接口进行发布            var url="/itpub-web/plugins/configcenter_mgr_ConfigInfo_allotJSON.htm";            params = {                ‘dJson‘: json            };            var option = $.ajax({                cache: true,                type: "POST",                url: url,                data: params,                async: true,                scriptCharset: ‘utf-8‘,//中文编码处理                success: function (data) {                    var data = eval(‘(‘ + data + ‘)‘);                    console.log("data:"+data.errorCode);                    if(data.errorCode==0) {                        if(data.result==undefined)                        {                            alert("发布异常!");                            $("#configfilecontentModal").modal("hide");//关闭发布窗口                        }else                        {                            //如果发布有误,调用接口查询错误原因,并显示在列表中。                           var deployId = data.result;                            var resultUrl = "/itpub-web/plugins/configcenter_mgr_ConfigHistory_getListJSON.htm?configHistoryBean.deployId=" +deployId;                            $http.get(resultUrl).success(function (data) {                                console.log(‘====return:‘ + data.data);                                $scope.congfighistoryList = data.data;                                $("#configfilecontentModal").modal("hide");//关闭发布窗口                                $("#configfilehistoryModal").modal("show");//显示发布失败或成功结果                            });                        }                    }                    if(data.errorCode==1)                    {                        alert("发布成功!");                        $("#configfilecontentModal").modal("hide");                        console.log("result:"+data.result);                    }                }            })        }        //确定回滚配置文件内容confirmrollbackfile        $scope.confirmrollbackfile=function(item){            var item= new Object();            var hostList=new Array();//主机列表            var fileList=new Array();//文件列表            var operType=new Array();//发布还是回滚            var hostcheck = false;//主机列表默认选择为false            var filecheck = false;//文件列表默认选择为false            var params;            //循环读取组机组主机列表就需要重新组装            for(var i=0;i<$scope.hostgrouphostList.length;i++) {                hostcheck = $scope.hostgrouphostList[i].selectChk;                if (hostcheck) {                    var hh = new Object();                    hh.hostGroupHostId = $scope.hostgrouphostList[i].hostGroupHostId;//组机组主机ID                    hh.hostName = $scope.hostgrouphostList[i].hostName;//主机名称                    hostList.push(hh);//重新组装到hostList                }            }            if(hostList.length<=0)            {                alert("请选择要回滚的主机");                return;            }            item.operType="rollback";//操作类型为回归            item.hostList = hostList;//将选择的主机列表赋值给hostList            //如果选择的是配置内容列表就需要重新组装            for (var j = 0; j < $scope.configList.length; j++) {                filecheck = $scope.configList[j].selectChkcont;                if (filecheck) {                    var cc = new Object();                   var state=$scope.configList[j].state;                    if(state!="S0A")                    {                    alert("配置文件状态不是发布中,不能回滚!");                        return;                    }                    cc.fileName = $scope.configList[j].fileName;//文件名                    cc.configContentId = $scope.configList[j].configContentId;//配置文件内容Id                    cc.path = $scope.configList[j].path;//配置文件路径                    cc.content = $scope.configList[j].content;//配置文件内容                    cc.fileUrl = $scope.configList[j].fileUrl;//配置文件内容fileUrl                    fileList.push(cc);//重新赋值给文件列表                }            }            if(fileList.length<=0)            {                alert("请选择要回滚的文件");                return;            }            if (!confirm("确认要回滚吗?")) {                return;            }            item.fileList = fileList;//将选择的配置文件列表赋值给fileList            var json=angular.toJson(item);//json 转换            console.log("json:"+json);            //调用kitty 平台接口            var url="/itpub-web/plugins/configcenter_mgr_ConfigInfo_allotJSON.htm";            params = {                ‘dJson‘: json            };            var option = $.ajax({                cache: true,                type: "POST",                url: url,                data: params,                async: true,                scriptCharset: ‘utf-8‘,//中文编码处理                success: function (data) {                    var data = eval(‘(‘ + data + ‘)‘);                    console.log("data:"+data.errorCode);                    if(data.errorCode==0) {                        if(data.result==undefined)                        {                            alert("回滚异常!");                            $("#rollbackfilecontentModal").modal("hide");//关闭回滚窗口                        }else {                            //如果回滚错误,调用接口查询错误原因,并显示在列表中。                            var deployId = data.result;                            var resultUrl = "/itpub-web/plugins/configcenter_mgr_ConfigHistory_getListJSON.htm?configHistoryBean.deployId=" + deployId;                            $http.get(resultUrl).success(function (data) {                                console.log(‘====return:‘ + data.data);                                $scope.congfighistoryList = data.data;                                $("#rollbackfilecontentModal").modal("hide");//关闭回滚窗口                                $("#configfilehistoryModal").modal("show");//显示发布失败或成功结果                            });                        }                    }                    //成功的就不显示了,直接hide 了                    if(data.errorCode==1)                    {                        alert("回滚文件成功!");                        $("#rollbackfilecontentModal").modal("hide");                        console.log("result:"+data.result);                    }                }            })        }        //主机全选        $scope.hostgrouphostall= function (c,v) {             var selecthostgrouphostList=new Array();            //如果是全选主机,则selectChk=true            if(c==true){               for(var i=0;i<$scope.hostgrouphostList.length;i++)                {                    var gh=new Object();                    gh.selectChk=true;//主全选标志                    gh.hostName= $scope.hostgrouphostList[i].hostName;//主机名称                    gh.hostGroupHostId = $scope.hostgrouphostList[i].hostGroupHostId;//主机组主机ID                    selecthostgrouphostList.push(gh);                }                $scope.hostgrouphostList=new Array();//重新初始化hostgrouphostList                $scope.hostgrouphostList=selecthostgrouphostList;            }else{                //如果是反选主机,则selectChk=false                for(var i=0;i<$scope.hostgrouphostList.length;i++)                {                    var gh=new Object();                    gh.selectChk=false;//主机全选标志                    gh.hostName= $scope.hostgrouphostList[i].hostName;//主机名称                    gh.hostGroupHostId = $scope.hostgrouphostList[i].hostGroupHostId;//主机组主机ID                    selecthostgrouphostList.push(gh);                }                $scope.hostgrouphostList=new Array();//重新初始化hostgrouphostList                $scope.hostgrouphostList=selecthostgrouphostList;            }        };        //配置文件全选        $scope.configall= function (c,v) {            var selectconfigList=new Array();            //如果是反选配置文件,则selectChkcont=true            if(c==true){                for (var j = 0; j < $scope.configList.length; j++) {                    var ch = new Object();                    ch.selectChkcont=true;//全选文件标志                    ch.fileName= $scope.configList[j].fileName;//文件名                    ch.fileDesc= $scope.configList[j].fileDesc;//文具描述                    ch.configContentId= $scope.configList[j].configContentId;//文具内容Id                    ch.path= $scope.configList[j].path;//路径                    ch.content= $scope.configList[j].content;//内容                    ch.fileUrl= $scope.configList[j].fileUrl;//文件URL                    ch.version= $scope.configList[j].version;//版本                    ch.versionDesc= $scope.configList[j].versionDesc;//版本描述                    ch.state=$scope.configList[j].state;// 状态                    selectconfigList.push(ch);                }                $scope.configList=new Array();//重新初始化configList                $scope.configList=selectconfigList;//将全选的配置文件重新赋值给configList            }else{                //如果是反选配置文件,则selectChkcont=false                for (var j = 0; j < $scope.configList.length; j++) {                    var ch = new Object();                    ch.selectChkcont=false;//全选文件标志                    ch.fileName= $scope.configList[j].fileName;//文件名                    ch.fileDesc= $scope.configList[j].fileDesc;//文件描述                    ch.configContentId= $scope.configList[j].configContentId;//文具内容Id                    ch.path= $scope.configList[j].path;//路径                    ch.content= $scope.configList[j].content;//内容                    ch.fileUrl= $scope.configList[j].fileUrl;//文件URL                    ch.version= $scope.configList[j].version;//文件版本                    ch.versionDesc= $scope.configList[j].versionDesc;//版本描述                    ch.state=$scope.configList[j].state;// 状态                    selectconfigList.push(ch);                }                $scope.configList=new Array();//重新初始化configList                $scope.configList=selectconfigList;            }        };    });})(window.angular);
时间: 2024-10-08 19:45:31

angular checkbox 全选和反选功能的相关文章

checkbox全选和反选功能

用jQuery实现checkbox的全选和反选功能,当checkbox禁用时候不参与全选功能 <!DOCTYPE html> <html> <head> <title></title> <style type="text/css"> body,h1,h2,h3,h4,h5,h6,hr,p,blockquote,dl,dt,dd,ul,ol,li,pre,form,fieldset,legend,button,inp

checkbox 全选,反选 ,全不选

在表格或者列表中经常会遇到要全选或者反选等交互,今天总结了一下代码,保留着以后直接拿来用 原理: 1. 全选:当全选checkbox被点击(不管点击之前是什么状态)后,获取其checked状态.然后对列表进行循环检测,此时可以将所有的(无论之前什么状态),设为选中,也可对未选中的进行选中. 2. 反选:当反选checkbox被点击(不管点击之前是什么装填)后,获取其其状态值,对列表进行循环检测,将被检测的元素的checked状态反向处理,即可. 3. 列表全选或者不全选:当列表中的任意一个che

checkbox全选,反选,取消选择 jquery

checkbox全选,反选,取消选择 jquery. //checkbox全部选择 $(":checkbox[name='osfipin']").each(function(){ $(this).attr("checked",true); }); //checkbox取消全选 $(":checkbox[name='osfipin']").each(function(){ $(this).attr("checked",false

jquery实现全选和反选功能

jQuery操作复选框的选中和不选中状态非常简单,使用attr()来设置"checked"属性的值,true未选中,false为未选中,在整个全选.反选过程中注意处理全选复选框的选中状态,以及获取选中选项的值. <ul id="list"> <li><label><input type="checkbox" value="1"> 1.我是记录来的呢</label>&l

练习-checkbox 全选 ,反选, 单选,以及取值

1.方法1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>全选与反选</title> <meta http-equiv="Content-Type" content="te

Delphi实现DBGrid全选和反选功能

Delphi实现Dbgrid全选和反选.清除全选的功能,不管是在Delphi下,还是在WEB开发中,这种功能都是很实用的,是进行数据批量操作的基础.本模块就是实现了为Delphi的DBGrid数据列表增加全选内容.清除全选的功能,很实用了,代码内容如下: //全选 procedure TFrameCustSelector.ToolButton1Click(Sender: TObject); var OldCurrent: TBookmark; begin OldCurrent := DBGrid

Android实战简易教程-第五十一枪(ListView实现子控件的动态显示和隐藏、checkbox全选和反选)

前段时间写过一篇文章:Android实战简易教程-第四十七枪(ListView多选-实现点餐系统)有的同学留言建议,可不可以动态控制checkbox的显示和全选反选功能,我研究了一下,发现实现也比较容易,特写下此篇文章.学习就是要有发散思维,要举一反三,大家也可以根据我的实例进行改编,添加和删除一些功能,这样可以提高你对知识的认知!下面我们看一下代码: 1.main.xml: <?xml version="1.0" encoding="utf-8"?>

html checkbox 全选与反选

之所以记录这个博客,是因为我完全用jquery,无法实现自己想要的结果(通过一个checkbox的选中或不选中控制其他多个checkbox状态) <input type="checkbox" name="test" />圣诞节 <input type="checkbox" name="test" />股市 <input type="checkbox" name="te

js CheckBox 全选、反选

<h3>你最喜欢的水果是?</h3> <label><input type="checkbox"/>苹果</label> <label><input type="checkbox"/>香蕉</label> <label><input type="checkbox"/>梨</label> <label>&l