这篇文章将为大家详细讲解有关angular框架如何实现全选与单选chekbox,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
1)页面内容(静态页)
<ul class='list-inline my-list-inline'> <li class="action-check" ng-class="{'active':allHasChoice}" ng-click="clicktarget(true,tmp,dataList)"> <li>中文名称</li> <li>英文名称</li> <li>申请人类型</li> <ul> <div class="list-data"> <table> <tbody> <tr ng-repeat="tmp in dataList track by tmp.idTell" ng-class="{true:'active',false:''}[targetChoice[tmp.idTell]==true]" ng-click="ctmlicktarget(false,tmp,dataList)" > <td> <span class="choice-icon"></span> <span class="company-name over-flow-handel-style" title="{{tmp.chineseName}}" ng-bind="tmp.cineseName"></span> </td> <td> <span class="english-name over-flow-handel-style" title="{{tmp.englishName}}" ng-bind="tmp.englishName"></span> </td> <td> <span class="english-name over-flow-handel-style" title="{{tmp.abbreviation}}" ng-bind="tmp.abbreviation"></span> </td> </tr> </tbody> </table>
2)js代码
首先当然有一个参数数组,用于经营经营渲染页面:
$scope.dataList=[ {'chineseName':'百度科技','englishName':'baidukeji','abbreviation':'小度','idTell':'bd'}, {'chineseName':'小牛科技','englishName':'xiaoniukeji','abbreviation':'小牛','idTell':'xn'}, {'chineseName':'京东科技','englishName':'jdkeji','abbreviation':'小京','idTell':'xj'}, {'chineseName':'顺风科技','englishName':'sfkeji','abbreviation':'小风','idTell':'xf'}, {'chineseName':'阿里科技','englishName':'alkeji','abbreviation':'小里','idTell':'xl'}, {'chineseName':'淘宝科技','englishName':'tbkeji','abbreviation':'小宝','idTell':'xb'}, {'chineseName':'天猫科技','englishName':'tmkeji','abbreviation':'小猫','idTell':'xm'} ];
定义一个数组用于存储,选中的选项
$scope.targetChoice=[];
定义一个很简单的方法:用于操作单选,全选的效果实现
$scope.clicktarget=function(isAllChoiceBtn,tmp,dataList){ //isAllChoiceBtn:用于表示用户点击的是否是全选按钮,tmp:是数据集合中的一个数据对象 var count=0;//记录被选中的子选项的个数 //说明用户点击的不是“全选”按钮 isAllChoiceBtn==false?(function(){ //当前选项取反 $scope.targetChoice[tmp.idTell]=!$scope.targetChoice[tmp.idTell]; //遍历数据集合,统计已经被购中的单选项 angular.foreach(dataList,function(v,k){ $scope.targetChoice[v.idTell]&& count++; }); //如果count等于数据集合得长度,说明所有的单选被购中 count==dataList.length && $scope.allHasChoice=true:$scope.allHasChoice==false; })() //说明点击的"全选"按钮 :(function(){ $scope.allHasChoice=!$scope.allHasChoice;//状态取反 $scope.allHasChoice==false? //说明取消全选 :angular.forEach(dataList,function(v,k){ $scope.targetChoice[v.idTell]=$scope.allHasChoice; count=0; }) //说明选中全选 :angular.forEach(dataList,function(v,k){ $scope.targetChioce[v.idTell]=$scope.allHasChoice; count++; }); })() }
关于“angular框架如何实现全选与单选chekbox”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。