用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 相关文章推荐
JS 添加网页桌面快捷方式的代码详细整理
Dec 27 Javascript
checkbox勾选判断代码分析
Jun 11 Javascript
js判断手机和pc端选择不同执行事件的方法
Jan 30 Javascript
coffeescript使用的方式汇总
Aug 05 Javascript
JS正则替换掉小括号及内容的方法
Nov 29 Javascript
[原创]JS基于FileSaver.js插件实现文件保存功能示例
Dec 08 Javascript
详解angular2实现ng2-router 路由和嵌套路由
Mar 24 Javascript
如何编写jquery插件
Mar 29 jQuery
详解AngularJS 路由 resolve用法
Apr 24 Javascript
Bootstrap Table快速完美搭建后台管理系统
Sep 20 Javascript
vue.js提交按钮时进行简单的if判断表达式详解
Aug 08 Javascript
vue 自定义指令自动获取文本框焦点的方法
Aug 25 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
改变Apache端口等配置修改方法
2008/06/05 PHP
PHP程序开发范例学习之表单 获取文本框的值
2011/08/08 PHP
PHP系列学习之日期函数使用介绍
2012/08/18 PHP
php中Y2K38的漏洞解决方法实例分析
2014/09/22 PHP
thinkphp文件引用与分支结构用法实例
2014/11/26 PHP
PHP递归获取目录内所有文件的实现方法
2016/11/01 PHP
很全的显示阴历(农历)日期的js代码
2009/01/01 Javascript
ext 同步和异步示例代码
2009/09/18 Javascript
麻雀虽小五脏俱全 Dojo自定义控件应用
2010/09/04 Javascript
JavaScript中的排序算法代码
2011/02/22 Javascript
angularJS 入门基础
2015/02/09 Javascript
JS函数的几种定义方式分析
2015/12/17 Javascript
js倒计时抢购实例
2015/12/20 Javascript
js实现页面跳转的几种方法小结
2016/05/16 Javascript
原生的强大DOM选择器querySelector介绍
2016/12/21 Javascript
浅谈JavaScript中的属性:如何遍历属性
2017/09/14 Javascript
vue项目中jsonp跨域获取qq音乐首页推荐问题
2018/05/30 Javascript
Nodejs Express 通过log4js写日志到Logstash(ELK)
2018/08/30 NodeJs
Bootstrap实现省市区三级联动(亲测可用)
2019/07/26 Javascript
解决layui 表单元素radio不显示渲染的问题
2019/09/04 Javascript
使用JS来动态操作css的几种方法
2019/12/18 Javascript
vue学习笔记之slot插槽用法实例分析
2020/02/29 Javascript
JavaScript本地储存:localStorage、sessionStorage、cookie的使用
2020/10/13 Javascript
[00:26]TI7不朽珍藏III——冥界亚龙不朽展示
2017/07/15 DOTA
windows下python 3.9 Numpy scipy和matlabplot的安装教程详解
2020/11/28 Python
迪士尼西班牙官方网上商店:ShopDisney西班牙
2020/02/02 全球购物
夏季奶茶店创业计划书
2014/01/16 职场文书
毕业自我鉴定总结
2014/03/24 职场文书
委托书范文
2014/04/02 职场文书
2015年销售内勤工作总结
2015/04/27 职场文书
三国演义读书笔记
2015/06/25 职场文书
html+css 实现简易导航栏功能
2021/04/07 HTML / CSS
Python办公自动化之教你用Python批量识别发票并录入到Excel表格中
2021/06/26 Python
一篇文章带你深入了解Mysql触发器
2021/08/02 MySQL
P站美图推荐——变身女主角特辑
2022/03/20 日漫
人工智能深度学习OpenAI baselines的使用方法
2022/05/20 Python