用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 相关文章推荐
面向对象Javascript核心支持代码分享
May 23 Javascript
js 利用image对象实现图片的预加载提高访问速度
Mar 29 Javascript
JS正则表达式大全(整理详细且实用)
Nov 14 Javascript
javascript仿百度输入框提示自动下拉补全
Jan 07 Javascript
基于JSON格式数据的简单jQuery幻灯片插件(jquery-slider)
Aug 10 Javascript
JavaScript中闭包之浅析解读(必看篇)
Aug 25 Javascript
JavaScript仿支付宝6位数字密码输入框
Dec 29 Javascript
bootstrap table操作技巧分享
Feb 15 Javascript
JS仿Base.js实现的继承示例
Apr 07 Javascript
VS Code转换大小写、修改选中文字或代码颜色的方法
Dec 15 Javascript
layui结合form,table的全选、反选v1.0示例讲解
Aug 15 Javascript
Vue.js的复用组件开发流程完整记录
Nov 29 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提交过来的数据生成为txt文件
2016/04/28 PHP
优化 JavaScript 代码的方法小结
2009/07/16 Javascript
javascript中的缓动效果实现程序
2012/12/29 Javascript
javascript数组操作方法小结和3个属性详细介绍
2014/07/05 Javascript
详谈javascript中DOM的基本属性
2015/02/26 Javascript
浅谈JavaScript中的字符编码转换问题
2015/07/07 Javascript
巧用Vue.js+Vuex制作专门收藏微信公众号的app
2016/11/03 Javascript
Bootstrap风格的WPF样式
2016/12/07 Javascript
socket.io学习教程之深入学习篇(三)
2017/04/29 Javascript
详解基于angular-cli配置代理解决跨域请求问题
2017/07/05 Javascript
jQuery EasyUI 选项卡面板tabs的使用实例讲解
2017/12/25 jQuery
利用vue和element-ui设置表格内容分页的实例
2018/03/02 Javascript
详解Vue.js使用Swiper.js在iOS
2018/09/10 Javascript
JS实现的排列组合算法示例
2019/07/16 Javascript
微信小程序如何连接Java后台
2019/08/08 Javascript
[31:29]完美世界DOTA2联赛PWL S3 INK ICE vs Magma 第一场 12.20
2020/12/23 DOTA
Python 实现随机数详解及实例代码
2017/04/15 Python
Python引用类型和值类型的区别与使用解析
2017/10/17 Python
详解Python中的type和object
2018/08/15 Python
用Python解决x的n次方问题
2019/02/08 Python
将pip源更换到国内镜像的详细步骤
2019/04/07 Python
Python3.5常见内置方法参数用法实例详解
2019/04/29 Python
Django REST framework 视图和路由详解
2019/07/19 Python
Python序列对象与String类型内置方法详解
2019/10/22 Python
Python利用全连接神经网络求解MNIST问题详解
2020/01/14 Python
如何使用python传入不确定个数参数
2020/02/18 Python
Python3如何在服务器打印资产信息
2020/08/27 Python
Python获取指定网段正在使用的IP
2020/12/14 Python
菲律宾优惠券网站:MetroDeal
2019/04/12 全球购物
NICKIS.com荷兰:设计师儿童时装
2020/01/08 全球购物
统计员岗位职责
2013/11/14 职场文书
中秋节超市促销方案
2014/01/30 职场文书
机关单位工作失职检讨书
2014/11/20 职场文书
催款通知书范文
2015/04/17 职场文书
行政介绍信范文
2015/05/04 职场文书
基于Apache Hudi在Google云构建数据湖平台的思路详解
2022/04/07 Servers