用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
Nov 25 Javascript
escape、encodeURI、encodeURIComponent等方法的区别比较
Dec 27 Javascript
在textarea文本域中显示HTML代码的方法
Mar 06 Javascript
javascript 建设银行登陆键盘
Jun 10 Javascript
Google Map API更新实现用户自定义标注坐标
Jul 29 Javascript
Js中的onblur和onfocus事件应用介绍
Aug 27 Javascript
利用js动态添加删除table行的示例代码
Dec 16 Javascript
使用JS实现jQuery的addClass, removeClass, hasClass函数功能
Oct 31 Javascript
JavaScript数组排序reverse()和sort()方法详解
Dec 24 Javascript
vue 中引用gojs绘制E-R图的方法示例
Aug 24 Javascript
vue 修改 data 数据问题并实时显示的方法
Aug 27 Javascript
javascript设计模式 ? 访问者模式原理与用法实例分析
Apr 26 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
全国FM电台频率大全 - 11 浙江省
2020/03/11 无线电
php 生成饼图 三维饼图
2009/09/28 PHP
IE8 浏览器Cookie的处理
2009/01/31 Javascript
Mootools 1.2教程 排序类和方法简介
2009/09/15 Javascript
JSQL  一个 web DB 的封装
2010/05/05 Javascript
node.js请求HTTPS报错:UNABLE_TO_VERIFY_LEAF_SIGNATURE\的解决方法
2016/12/18 Javascript
jQuery.Form实现Ajax上传文件同时设置headers的方法
2017/06/26 jQuery
vue中七牛插件使用的实例代码
2017/07/28 Javascript
jQuery实现的淡入淡出与滑入滑出效果示例
2018/04/18 jQuery
代码整洁之道(重构)
2018/10/25 Javascript
vue2 v-model/v-text 中使用过滤器的方法示例
2019/05/09 Javascript
JavaScript定时器设置、使用与倒计时案例详解
2019/07/08 Javascript
jQuery实现推拉门效果
2020/10/19 jQuery
vue使用element-ui实现表单验证
2020/12/13 Vue.js
[01:21]DOTA2新纪元-7.0新版本即将开启!
2016/12/11 DOTA
浅析Python基础-流程控制
2016/03/18 Python
Python入门_浅谈数据结构的4种基本类型
2017/05/16 Python
OpenCV-Python实现轮廓检测实例分析
2018/01/05 Python
Python设计模式之代理模式实例详解
2019/01/19 Python
python3 property装饰器实现原理与用法示例
2019/05/15 Python
python装饰器的特性原理详解
2019/12/25 Python
python 输出列表元素实例(以空格/逗号为分隔符)
2019/12/25 Python
Python xlrd/xlwt 创建excel文件及常用操作
2020/09/24 Python
CSS3 清除浮动的方法示例
2018/06/01 HTML / CSS
阿联酋航空假期:Emirates Holidays
2018/03/20 全球购物
中学老师的自我评价
2013/11/07 职场文书
数学专业毕业生自荐信
2013/11/10 职场文书
2014年自我评价
2014/01/04 职场文书
服装促销活动方案
2014/02/23 职场文书
幼儿园安全责任书
2014/04/14 职场文书
物流管理专业求职信
2014/05/29 职场文书
计算机毕业生求职信
2014/06/10 职场文书
四风专项整治工作情况汇报
2014/10/28 职场文书
党支部意见范文
2015/06/02 职场文书
辛德勒的名单观后感
2015/06/03 职场文书
珍爱生命主题班会
2015/08/13 职场文书