用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网页版计算器的简单实现
Jul 02 Javascript
firefox下jquery ajax返回object XMLDocument处理方法
Jan 26 Javascript
jquery 删除字符串最后一个字符的方法解析
Feb 11 Javascript
javascript页面上使用动态时间具体实现
Mar 18 Javascript
JavaScript跨浏览器获取页面中相同class节点的方法
Mar 03 Javascript
javascript操作表格排序实例分析
May 06 Javascript
JavaScript学习笔记(三):JavaScript也有入口Main函数
Sep 12 Javascript
jQuery中ajax的load()与post()方法实例详解
Jan 05 Javascript
浅谈Vue2.4.0 $attrs与inheritAttrs的具体使用
Mar 08 Javascript
浅析JavaScript 函数防抖和节流
Jul 13 Javascript
原生js实现表格翻页和跳转
Sep 29 Javascript
浅谈Vue使用Elementui修改默认的最快方法
Dec 05 Vue.js
详解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
Classes and Objects in PHP5-面向对象编程 [1]
2006/10/09 PHP
ThinkPHP Mobile使用方法简明教程
2014/06/18 PHP
php实现每日签到功能
2018/11/29 PHP
DEFER怎么用?
2006/07/01 Javascript
JavaScript中null与undefined分析
2009/07/25 Javascript
Lazy Load 延迟加载图片的 jQuery 插件
2010/02/06 Javascript
WEB高性能开发之疯狂的HTML压缩
2010/06/19 Javascript
javascript 广告后加载,加载完页面再加载广告
2010/11/25 Javascript
推荐一款jQuery插件模板
2015/01/09 Javascript
js实现进度条的方法
2015/02/13 Javascript
JavaScript学习小结(7)之JS RegExp
2015/11/29 Javascript
第一次接触神奇的Bootstrap菜单和导航
2016/08/01 Javascript
AngularJS入门教程之链接与图片模板详解
2016/08/19 Javascript
同步异步动态引入js文件的几种方法总结
2016/09/23 Javascript
代码分析vue中如何配置less
2018/09/28 Javascript
微信小程序实现左侧滑栏过程解析
2019/08/26 Javascript
vue 实现移动端键盘搜索事件监听
2019/11/06 Javascript
详解vue中v-bind:style效果的自定义指令
2020/01/21 Javascript
vue实现图片懒加载的方法分析
2020/02/05 Javascript
vue总线机制(bus)知识点详解
2020/05/10 Javascript
原生JavaScript实现幻灯片效果
2021/02/19 Javascript
Python help()函数用法详解
2014/03/11 Python
Python pandas常用函数详解
2018/02/07 Python
基于python 爬虫爬到含空格的url的处理方法
2018/05/11 Python
django输出html内容的实例
2018/05/27 Python
python3实现爬取淘宝美食代码分享
2018/09/23 Python
200行python代码实现2048游戏
2019/07/17 Python
对tensorflow 中tile函数的使用详解
2020/02/07 Python
Giglio美国站:意大利奢侈品购物网
2018/02/10 全球购物
艺术设计专业个人求职信
2013/09/21 职场文书
学生思想表现的评语
2014/01/30 职场文书
法定代表人授权委托书
2014/09/19 职场文书
劳动仲裁代理词范文
2015/05/25 职场文书
女儿满月酒致辞
2015/07/29 职场文书
pandas:get_dummies()与pd.factorize()的用法及区别说明
2021/05/21 Python
SpringBoot系列之MongoDB Aggregations用法详解
2022/02/12 MongoDB