用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中this关键字使用方法详解
Mar 08 Javascript
13 款最热门的 jQuery 图像 360 度旋转插件推荐
Dec 09 Javascript
使用Jasmine和Karma对AngularJS页面程序进行测试
Mar 05 Javascript
js 中获取制定的cook信息实现方法
Nov 19 Javascript
jquery+ajax实现省市区三级联动效果简单示例
Jan 04 Javascript
微信小程序scroll-view实现横向滚动和上拉加载示例
Mar 06 Javascript
jquery使用iscorll实现上拉、下拉加载刷新
Oct 26 jQuery
使用 Node.js 开发资讯爬虫流程
Jan 07 Javascript
利用jquery和BootStrap实现动态滚动条效果
Dec 03 jQuery
微信小程序时间控件picker view使用详解
Dec 28 Javascript
layui动态渲染生成select的option值方法
Sep 23 Javascript
node.js +mongdb实现登录功能
Jun 18 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中常用字符串处理代码片段整理
2011/11/07 PHP
php时间戳转换的示例
2014/03/31 PHP
php结合curl实现多线程抓取
2015/07/09 PHP
PHP页面输出搜索后跳转下一页的处理方法
2016/09/30 PHP
PHP 实现字符串翻转(包含中文汉字)的实现代码
2017/04/01 PHP
JavaScript 解析读取XML文档 实例代码
2009/07/07 Javascript
各情景下元素宽高的获取实现代码
2011/09/13 Javascript
javascript中数组的concat()方法使用介绍
2013/12/18 Javascript
js 获取页面高度和宽度兼容 ie firefox chrome等
2014/05/14 Javascript
Jquery解析Json格式数据过程代码
2014/10/17 Javascript
JavaScript数组常用方法
2015/03/02 Javascript
JavaScript使用DeviceOne开发实战(四)仿优酷视频应用
2015/12/02 Javascript
JS实现的自定义水平滚动字体插件完整实例
2016/06/17 Javascript
ajax实现动态下拉框示例
2017/01/10 Javascript
bootstrap table表格插件使用详解
2017/05/08 Javascript
Angular2安装angular-cli
2017/05/21 Javascript
layui实现数据分页功能(ajax异步)
2019/07/27 Javascript
JavaScript 实现拖拽效果组件功能(兼容移动端)
2020/11/11 Javascript
python统计一个文本中重复行数的方法
2014/11/19 Python
Python实现简单的文本相似度分析操作详解
2018/06/16 Python
在Mac上删除自己安装的Python方法
2018/10/29 Python
Django 导出项目依赖库到 requirements.txt过程解析
2019/08/23 Python
关于numpy中eye和identity的区别详解
2019/11/29 Python
Python实现word2Vec model过程解析
2019/12/16 Python
pytorch 实现查看网络中的参数
2020/01/06 Python
pycharm实现猜数游戏
2020/12/07 Python
关于box-sizing的全面理解
2016/07/28 HTML / CSS
使用CSS3制作一个简单的进度条(demo)
2017/05/23 HTML / CSS
网站域名和主机:Domain.com
2019/04/01 全球购物
经典C++面试题一
2016/11/06 面试题
生产部岗位职责范文
2014/02/07 职场文书
书香校园建设方案
2014/05/02 职场文书
优秀教师单行材料
2014/12/16 职场文书
团日活动总结格式
2015/05/11 职场文书
Java输出Hello World完美过程解析
2021/06/13 Java/Android
SpringBoot2 参数管理实践之入参出参与校验的方式
2021/06/16 Java/Android