用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下用eval生成JSON对象
Sep 17 Javascript
js 判断checkbox是否选中的实现代码
Nov 23 Javascript
jQuery编程中的一些核心方法简介
Aug 14 Javascript
Javascript中类式继承和原型式继承的实现方法和区别之处
Apr 25 Javascript
phantomjs导出html到pdf的方法总结
Oct 19 Javascript
Vue中的scoped实现原理及穿透方法
May 15 Javascript
iview实现select tree树形下拉框的示例代码
Dec 21 Javascript
JavaScript实现秒杀时钟倒计时
Sep 29 Javascript
Vue实现点击当前元素以外的地方隐藏当前元素(实现思路)
Dec 04 Javascript
解决三元运算符 报错“SyntaxError: can''t assign to conditional expression”
Feb 12 Javascript
微信小程序单选框自定义赋值
May 26 Javascript
微信小程序实现电子签名功能
Jul 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中遍历二维数组的几种方法详解
2013/06/08 PHP
php验证手机号码
2015/11/11 PHP
总结PHP中数值计算的注意事项
2016/08/14 PHP
php单元测试phpunit入门实例教程
2017/11/17 PHP
常用参考资料(手册)下载或者链接
2006/07/22 Javascript
Javascript 日期处理之时区问题
2009/10/08 Javascript
JQuery live函数
2010/12/24 Javascript
关于jQuery $.isNumeric vs. $.isNaN vs. isNaN
2013/04/15 Javascript
文本域中换行符的替换示例
2014/03/04 Javascript
JS实现具备延时功能的滑动门菜单效果
2015/09/17 Javascript
JS创建对象几种不同方法详解
2016/03/01 Javascript
js实时获取窗口大小变化的实例代码
2016/11/18 Javascript
本地Bootstrap文件字体图标引入却无法显示问题的解决方法
2020/04/18 Javascript
js读取json文件片段中的数据实例
2017/03/09 Javascript
微信小程序 按钮滑动的实现方法
2017/09/27 Javascript
在Django的视图中使用数据库查询的方法
2015/07/16 Python
python针对excel的操作技巧
2018/03/13 Python
Python实现绘制双柱状图并显示数值功能示例
2018/06/23 Python
pymongo中group by的操作方法教程
2019/03/22 Python
python代理工具mitmproxy使用指南
2019/07/04 Python
jupyter notebook 恢复误删单元格或者历史代码的实现
2020/04/17 Python
python多进程 主进程和子进程间共享和不共享全局变量实例
2020/04/25 Python
python logging通过json文件配置的步骤
2020/04/27 Python
如何用python开发Zeroc Ice应用
2021/01/29 Python
香港迪士尼乐园酒店预订:Hong Kong Disneyland Hotels
2017/05/02 全球购物
Boolean b = new Boolean(“abcde”); 会编译错误码
2013/11/27 面试题
外语专业毕业生自我评价分享
2013/10/05 职场文书
生物制药毕业生自荐信
2013/10/16 职场文书
《黄河颂》教学反思
2014/02/07 职场文书
《小小雨点》教学反思
2014/02/18 职场文书
商铺租赁意向书
2014/04/01 职场文书
励志广播稿300字(5篇)
2014/09/15 职场文书
2015年个人实习工作总结
2014/12/12 职场文书
幼儿园元旦主持词
2015/07/06 职场文书
关于食品安全的演讲稿范文(三篇)
2019/10/21 职场文书
Golang 正则匹配效率详解
2021/04/25 Golang