用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 相关文章推荐
document.open() 与 document.write()的区别
Aug 13 Javascript
jquery简单图片切换显示效果实现方法
Jan 14 Javascript
JSON对象 详解及实例代码
Oct 18 Javascript
JS得到当前时间的方法示例
Mar 24 Javascript
vue在使用ECharts时的异步更新和数据加载详解
Nov 22 Javascript
区别JavaScript函数声明与变量声明
Sep 12 Javascript
JavaScript中的事件与异常捕获详析
Feb 24 Javascript
小程序分页实践之编写可复用分页组件
Jul 18 Javascript
node.JS路径解析之PATH模块使用方法详解
Feb 06 Javascript
js生成1到100的随机数最简单的实现方法
Feb 07 Javascript
vue使用vue-quill-editor富文本编辑器且将图片上传到服务器的功能
Jan 13 Vue.js
JS前端可扩展的低代码UI框架Sunmao使用详解
Jul 23 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框架Swoole定时器Timer特性分析
2014/08/19 PHP
PHP给前端返回一个JSON对象的实例讲解
2018/05/31 PHP
学习jquery必备 api中英文对照的chm手册 下载
2007/05/03 Javascript
JQUERY复选框CHECKBOX全选,取消全选
2008/08/30 Javascript
js 浏览器事件介绍
2012/03/30 Javascript
浅谈javascript的原型继承
2012/07/25 Javascript
JavaScript获取和设置CheckBox状态的简单方法
2013/07/05 Javascript
jQuery实现点击文本框弹出热门标签的提示效果
2013/11/17 Javascript
jQuery遍历对象、数组、集合实例
2014/11/08 Javascript
AngularJS学习笔记之ng-options指令
2015/06/16 Javascript
jquery使用ul模拟select实现表单美化的方法
2015/08/18 Javascript
easyui Draggable组件实现拖动效果
2015/08/19 Javascript
js实现超酷的照片墙展示效果图附源码下载
2015/10/08 Javascript
javascript实现tab响应式切换特效
2016/01/29 Javascript
jquery实现ajax加载超时提示的方法
2016/07/23 Javascript
javaScript生成支持中文带logo的二维码(jquery.qrcode.js)
2017/01/03 Javascript
canvas实现图像截取功能
2017/02/06 Javascript
Angularjs使用过滤器完成排序功能
2017/09/20 Javascript
js实现倒计时器自定义时间和暂停
2019/02/25 Javascript
layui问题之自动滚动二级iframe页面到指定位置的方法
2019/09/18 Javascript
Python实现希尔排序算法的原理与用法实例分析
2017/11/23 Python
python os.listdir按文件存取时间顺序列出目录的实例
2018/10/21 Python
简单了解python PEP的一些知识
2019/07/13 Python
python自动提取文本中的时间(包含中文日期)
2020/08/31 Python
详解解决jupyter不能使用pytorch的问题
2021/02/18 Python
CSS3中animation实现流光按钮效果
2020/12/21 HTML / CSS
大专计算机个人求职的自我评价
2013/10/21 职场文书
乡镇安全生产目标责任书
2014/07/23 职场文书
协商一致解除劳动合同协议书
2014/09/14 职场文书
上班时间打瞌睡检讨书
2014/09/26 职场文书
试用期自我评价范文
2015/03/10 职场文书
2015年第十五个全民国防教育日宣传活动方案
2015/05/06 职场文书
初中教师德育工作总结2015
2015/05/12 职场文书
2015年教务处干事工作总结
2015/07/22 职场文书
教师读书活动心得体会
2016/01/14 职场文书
深入讲解数据库中Decimal类型的使用以及实现方法
2022/02/15 MySQL