用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 相关文章推荐
juqery 学习之三 选择器 层级 基本
Nov 25 Javascript
jquery解析JSON数据示例代码
Mar 17 Javascript
jquery仿百度经验滑动切换浏览效果
Apr 14 Javascript
Jquery幻灯片特效代码分享--打开页面随机选择切换方式(3)
Aug 15 Javascript
WebGL利用FBO完成立方体贴图效果完整实例(附demo源码下载)
Jan 26 Javascript
JavaScript+html5 canvas绘制的圆弧荡秋千效果完整实例
Jan 26 Javascript
jQuery Ajax File Upload实例源码
Dec 12 Javascript
React学习笔记之事件处理(二)
Jul 02 Javascript
一个手写的vue放大镜效果
Aug 09 Javascript
解决layui的table插件无法多层级获取json数据的问题
Sep 19 Javascript
JS实现json数组排序操作实例分析
Oct 28 Javascript
npx create-react-app xxx创建项目报错的解决办法
Feb 17 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扩展介绍与开发教程
2010/08/19 PHP
PHP下的Oracle客户端扩展(OCI8)安装教程
2014/09/10 PHP
PHP动态柱状图实现方法
2015/03/30 PHP
php实现基于PDO的预处理示例
2017/03/28 PHP
MooTools 1.2中的Drag.Move来实现拖放
2009/09/15 Javascript
input输入框的自动匹配(原生代码)
2013/03/19 Javascript
jQuery实现鼠标双击Table单元格变成文本框及输入内容后更新到数据库的方法
2015/11/25 Javascript
在页面中输出当前客户端时间javascript实例代码
2016/03/02 Javascript
webpack-dev-server自动更新页面方法
2018/02/22 Javascript
vue实现a标签点击高亮方法
2018/03/17 Javascript
详解Vue CLI 3.0脚手架如何mock数据
2018/11/23 Javascript
vue权限管理系统的实现代码
2019/01/17 Javascript
微信小程序使用map组件实现获取定位城市天气或者指定城市天气数据功能
2019/01/22 Javascript
微信小程序 wxParse插件显示视频问题
2019/09/27 Javascript
基于Vue 撸一个指令实现拖拽功能
2019/10/09 Javascript
Vue中常用rules校验规则(实例代码)
2019/11/14 Javascript
[01:14]3.19DOTA2发布会 三代刀塔人第二代
2014/03/25 DOTA
[02:34]2016完美“圣”典风云人物:BurNIng专访
2016/12/10 DOTA
[01:08:33]OG vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
[51:52]Liquid vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.24
2019/09/10 DOTA
Python抓取京东图书评论数据
2014/08/31 Python
Python获取文件ssdeep值的方法
2014/10/05 Python
python中模块查找的原理与方法详解
2017/08/11 Python
Python机器学习之K-Means聚类实现详解
2018/02/22 Python
python+ffmpeg批量去视频开头的方法
2019/01/09 Python
Django组件content-type使用方法详解
2019/07/19 Python
在django中查询获取数据,get, filter,all(),values()操作
2020/08/09 Python
python使用隐式循环快速求和的实现示例
2020/09/11 Python
有创意的广告词
2014/03/18 职场文书
跳槽求职信范文
2014/05/26 职场文书
2014年行风建设工作总结
2014/12/01 职场文书
工资证明范本
2015/06/12 职场文书
与死神共舞观后感
2015/06/15 职场文书
禁毒主题班会教案
2015/08/14 职场文书
2017年寒假少先队活动总结
2016/04/06 职场文书
使用redis生成唯一编号及原理示例详解
2021/09/15 Redis