用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 相关文章推荐
escape、encodeURI、encodeURIComponent等方法的区别比较
Dec 27 Javascript
jquery监控数据是否变化(修正版)
Apr 12 Javascript
使用pjax实现无刷新更改页面url
Feb 05 Javascript
javascript操作Cookie(设置、读取、删除)方法详解
Mar 18 Javascript
基于JavaScript实现移动端点击图片查看大图点击大图隐藏
Nov 04 Javascript
JS+Canvas 实现下雨下雪效果
May 18 Javascript
iscroll碰到Select无法选择下拉刷新的解决办法
May 21 Javascript
JS实现touch 点击滑动轮播实例代码
Jan 19 Javascript
vue组件中的数据传递方法
May 14 Javascript
Django+Vue实现WebSocket连接的示例代码
May 28 Javascript
微信小程序的授权实现过程解析
Aug 02 Javascript
js实现网页随机验证码
Oct 19 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中使用preg_replace函数匹配图片并加上链接的方法
2013/02/06 PHP
360搜索引擎自动收录php改写方案
2018/04/28 PHP
php7性能提升的原因详解
2019/10/13 PHP
php实现的证件照换底色功能示例【人像抠图/换背景图】
2020/05/29 PHP
Jquery 设置标题的自动翻转
2009/10/03 Javascript
JavaScript 组件之旅(三):用 Ant 构建组件
2009/10/28 Javascript
原来Jquery.load的方法可以一直load下去
2011/03/28 Javascript
jQuery setTimeout()函数使用方法
2013/04/07 Javascript
jQuery的显示和隐藏方法与css隐藏的样式对比
2013/10/18 Javascript
javascript对JSON数据排序的3个例子
2014/04/12 Javascript
鼠标左键单击冲突的问题解决方法(防止冒泡)
2014/05/14 Javascript
JS实现让访问者自助选择网页文字颜色的方法
2015/02/24 Javascript
教你如何使用firebug调试功能了解javascript闭包和this
2015/03/04 Javascript
javascript图片滑动效果实现
2021/01/28 Javascript
jQuery设置单选按钮radio选中/不可用的实例代码
2016/06/24 Javascript
nodejs连接mysql数据库简单封装示例-mysql模块
2017/04/10 NodeJs
JS实现搜索关键词的智能提示功能
2017/07/07 Javascript
全新打包工具parcel零配置vue开发脚手架
2018/01/11 Javascript
webpack4之SplitChunksPlugin使用指南
2018/06/12 Javascript
jQuery-ui插件sortable实现自由拖动排序
2018/12/01 jQuery
Vue组件模板的几种书写形式(3种)
2020/02/19 Javascript
JS页面动态绘图工具SVG,Canvas,VML介简介
2020/10/16 Javascript
[08:53]DOTA2每周TOP10 精彩击杀集锦vol.9
2014/06/26 DOTA
python 调用钉钉机器人的方法
2019/02/20 Python
python 利用jinja2模板生成html代码实例
2019/10/10 Python
pycharm运行scrapy过程图解
2019/11/22 Python
Python面向对象中类(class)的简单理解与用法分析
2020/02/21 Python
Django实现将一个字典传到前端显示出来
2020/04/03 Python
英国最大的线上保健品零售商之一:Vitamin Planet
2016/12/01 全球购物
台湾家适得:Homeget
2019/02/11 全球购物
培训主管岗位职责
2014/02/01 职场文书
干部作风建设个人剖析材料
2014/10/11 职场文书
社区党支部公开承诺书
2015/04/29 职场文书
七年级作文之英语老师
2019/10/28 职场文书
vue项目支付功能代码详解
2022/02/18 Vue.js
Docker与K8s关系介绍不会Docker也可以使用K8s
2022/06/25 Servers