用angular实现多选按钮的全选与反选实例代码


Posted in Javascript onMay 23, 2017

在页面中我们常常会遇到多选框,例如购物车里的商品

下面用angular来实现这一功能

<!DOCTYPE html> 
<html> 
<head lang="en"> 
  <meta charset="UTF-8"> 
  <title></title> 
  <script src="js/angular.min.js"></script> 
</head> 
<body ng-app="select" ng-controller="moreSel"> 
 
全选: <input type="checkbox" ng-checked="checks" ng-click="checks = !checks; all(checks)"> 
<!--track by $index去掉也可以--> 
<div ng-repeat="item in datas track by $index"> 
<input type="checkbox" ng-checked="chkItem[$index]" ng-click="ck(chkItem[$index]==undefind?false:chkItem[$index], item, $index)">{{ item }} 
</div> 
<pre>{{arr}}</pre> 
</body> 
 
<script> 
  //创建模块 
  angular.module("select", []) 
      //控制器 
      .controller("moreSel", function ($scope) { 
        $scope.datas = ["C++","Html","Javascript"]; 
        $scope.arr = [];//用来显示选中的内容 
        //用来标志每一项的状态 
        $scope.chkItem = []; 
 
        //全选 
        $scope.all = function (checks) { 
          //初始化设置状态 
          init(checks); 
          //将选中的内容赋值到数组中 
          if(checks) { 
            for(var i = 0; i < $scope.datas.length; i++) { 
              $scope.arr[i] = $scope.datas[i]; 
            } 
          }else { 
            $scope.arr = []; 
          } 
        } 
 
        //点击选择 
        $scope.ck = function (state, item, index) { 
          //取状态的相反值 
          $scope.chkItem[index] = !state; 
          //有一个为false则全选按钮为不选中 
          if(!$scope.chkItem[index]){ 
            $scope.checks = false; 
 
            //取消选中,将数值从arr数组中删除掉 
            var num = $scope.arr.indexOf(item); 
            $scope.arr.splice(num, 1); 
          }else { 
            //选中追加进去 
            $scope.arr.push(item); 
            for(var i = 0; i < $scope.datas.length; i++) { 
              //只要有一个按钮没有选中 
              if(!$scope.chkItem[i]){ 
                return; 
              } 
            } 
            //全部选中 
            $scope.checks = true; 
          } 
        } 
 
        //初始化 
        var init = function (sel) { 
          for(var i = 0; i < $scope.datas.length; i++) { 
            //sel没有值 默认初始化false 
            $scope.chkItem[i] = sel || false; 
          } 
        } 
      }); 
</script> 
</html>

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

Javascript 相关文章推荐
jQuery 学习第六课 实现一个Ajax的TreeView
May 17 Javascript
跨浏览器的事件对象介绍
Jun 27 Javascript
jquery判断浏览器后退时候弹出消息的方法
Aug 11 Javascript
jQuery表格列宽可拖拽改变且兼容firfox
Sep 03 Javascript
鼠标悬浮停留三秒后自动显示大图js代码
Sep 09 Javascript
jQuery中:hidden选择器用法实例
Dec 30 Javascript
jQuery中extend()和fn.extend()方法详解
Jun 03 Javascript
Bootstrap+jfinal退出系统弹出确认框的实现方法
May 30 Javascript
BootStrap表单验证实例代码
Jan 13 Javascript
ES6之模版字符串的具体使用
May 17 Javascript
Weex开发之地图篇的具体使用
Oct 16 Javascript
基于Vue CSR的微前端实现方案实践
May 27 Javascript
详解vue嵌套路由-params传递参数
May 23 #Javascript
详解vue嵌套路由-query传递参数
May 23 #Javascript
vue-router 中router-view不能渲染的解决方法
May 23 #Javascript
angular+webpack2实战例子
May 23 #Javascript
jquery实现图片轮播器
May 23 #jQuery
详解用node编写自己的cli工具
May 23 #Javascript
JavaScript 巧学巧用
May 23 #Javascript
You might like
用PHP获取Google AJAX Search API 数据的代码
2010/03/12 PHP
PHP+SQL 注入攻击的技术实现以及预防办法
2010/12/29 PHP
php获取网卡的MAC地址支持WIN/LINUX系统
2014/04/30 PHP
ThinkPHP模板中判断volist循环的最后一条记录的验证方法
2014/07/01 PHP
php中mysql操作buffer用法详解
2015/03/19 PHP
PHP简单计算两个时间差的方法示例
2017/06/20 PHP
[原创]PHP正则匹配中英文、数字及下划线的方法【用户名验证】
2017/08/01 PHP
PHP设计模式之装饰器模式实例详解
2018/02/07 PHP
用js遍历 table的脚本
2008/07/23 Javascript
javascript中[]和{}对象使用介绍
2013/03/20 Javascript
js给网页加上背景音乐及选择音效的方法
2015/03/03 Javascript
javascript日期计算实例分析
2015/06/29 Javascript
jQuery进行组件开发完整实例
2015/12/15 Javascript
基于JS代码实现导航条弹出式悬浮菜单
2016/06/17 Javascript
javascript的几种写法总结
2016/09/30 Javascript
Ajax和Comet技术总结
2017/02/19 Javascript
Vue过滤器,生命周期函数和vue-resource简单介绍
2021/01/12 Vue.js
[48:00]EG vs LGD 2018国际邀请赛淘汰赛BO3 第二场 8.26
2018/08/29 DOTA
python用来获得图片exif信息的库实例分析
2015/03/16 Python
简要讲解Python编程中线程的创建与锁的使用
2016/02/28 Python
实例探究Python以并发方式编写高性能端口扫描器的方法
2016/06/14 Python
老生常谈Python序列化和反序列化
2017/06/28 Python
python爬取足球直播吧五大联赛积分榜
2018/06/13 Python
CSS3的 fit-content实现水平居中
2017/09/07 HTML / CSS
利用html5 canvas动态画饼状图的示例代码
2018/04/02 HTML / CSS
Calphalon美国官网:美国顶级锅具品牌
2020/02/05 全球购物
中职应届生会计求职信
2013/10/23 职场文书
科室工作的个人自我评价
2013/10/30 职场文书
专业技术职务聘任书
2014/03/29 职场文书
学生会副主席竞聘书
2014/03/31 职场文书
小班上学期个人总结
2015/02/12 职场文书
紧急通知
2015/04/17 职场文书
房屋转让协议书(标准范本)
2016/03/21 职场文书
从贫穷到富有,是知识技能和学习力的差别
2019/08/20 职场文书
MySQL 自定义变量的概念及特点
2021/05/13 MySQL
redis 解决库存并发问题实现数量控制
2022/04/08 Redis