angular框架实现全选与单选chekbox的自定义


Posted in Javascript onJuly 06, 2017

2017年7月4日,我原本可以像其他同时一样早点回家,玩几把王者荣耀,但是我没有,因为我选择留下来,写一篇博客。

项目中经常性的会遇到什么点击“全选”按钮,勾中所有“单选按钮”,当所有单选按钮勾选后,全选按钮自动勾选,这里我并不是想说这是多么难的一个事情,我只是想炫耀下自己写的东西。

(勾选与否,是切换类名来实现的)换一个背景图片而已

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++;
    });
  })()
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
最佳6款用于移动网站开发的jQuery 图片滑块插件小结
Jul 20 Javascript
ajax提交表单实现网页无刷新注册示例
May 08 Javascript
JavaScript中使用stopPropagation函数停止事件传播例子
Aug 27 Javascript
JS折半插入排序算法实例
Dec 02 Javascript
javascript新闻跑马灯实例代码
Jul 29 Javascript
Angular ng-repeat 对象和数组遍历实例
Sep 14 Javascript
js获取Get值的方法
Sep 29 Javascript
Angular表单验证实例详解
Oct 20 Javascript
微信小程序实战之仿android fragment可滑动底部导航栏(4)
Apr 16 Javascript
通过js动态创建标签,并设置属性方法
Feb 24 Javascript
vue中改变滚动条样式的方法
Mar 03 Javascript
React 高阶组件HOC用法归纳
Jun 13 Javascript
详解Angular Reactive Form 表单验证
Jul 06 #Javascript
让div运动起来 js实现缓动效果
Jul 06 #Javascript
老生常谈Bootstrap媒体对象
Jul 06 #Javascript
jQuery实现选中行变色效果(实例讲解)
Jul 06 #jQuery
运用jQuery写的验证表单(实例讲解)
Jul 06 #jQuery
Textarea输入字数限制实例(兼容iOS&amp;安卓)
Jul 06 #Javascript
react系列从零开始_简单谈谈react
Jul 06 #Javascript
You might like
php完全过滤HTML,JS,CSS等标签
2009/01/16 PHP
模板引擎正则表达式调试小技巧
2011/07/20 PHP
关于js和php对url编码的处理方法
2014/03/04 PHP
destoon首页调用求购供应信息的地区名称的方法
2014/08/21 PHP
php带抄送和密件抄送的邮件发送方法
2015/03/20 PHP
PHP 实现人民币小写转换成大写的方法及大小写转换函数
2017/11/17 PHP
获取HTML DOM节点元素的方法的总结
2009/08/21 Javascript
dropdownlist之间的互相联动实现(显示与隐藏)
2009/11/24 Javascript
Extjs的FileUploadField文件上传出现了两个上传按钮
2014/04/29 Javascript
jQuery判断一个元素是否可见的方法
2015/06/05 Javascript
JS实现兼容性好,自动置顶的淘宝悬浮工具栏效果
2015/09/18 Javascript
微信小程序 swiper组件详解及实例代码
2016/10/25 Javascript
JavaScript计算值然后把值嵌入到html中的实现方法
2016/10/29 Javascript
解析JavaScript模仿块级作用域
2016/12/29 Javascript
jquery mobile实现可折叠的导航按钮
2017/03/11 Javascript
Node.js中看JavaScript的引用
2017/04/22 Javascript
JS实现加载和读取XML文件的方法详解
2017/04/24 Javascript
简述vue中的config配置
2018/01/23 Javascript
vuex的简单使用教程
2018/02/02 Javascript
react native 仿微信聊天室实例代码
2019/09/17 Javascript
React 父子组件通信的实现方法
2019/12/05 Javascript
[02:57]2014DOTA2国际邀请赛 选手辛苦解说更辛苦
2014/07/10 DOTA
在Python下利用OpenCV来旋转图像的教程
2015/04/16 Python
Python里disconnect UDP套接字的方法
2015/04/23 Python
Python读取mat文件,并转为csv文件的实例
2018/07/04 Python
Net Remoting把服务器端激活两种模式
2014/01/22 面试题
建筑文秘专业个人求职信范文
2013/12/28 职场文书
教师岗位职责范本
2013/12/29 职场文书
建设投标担保书
2014/05/13 职场文书
小学生保护环境倡议书
2014/05/15 职场文书
学习型党组织建设经验材料
2014/05/26 职场文书
司法局2014法制宣传日活动总结
2014/11/01 职场文书
2014年企业团支部工作总结
2014/12/10 职场文书
Python基础之数据结构详解
2021/04/28 Python
php访问对象中的成员的实例方法
2021/11/17 PHP
用Python可视化新冠疫情数据
2022/01/18 Python