AngularJS实现全选反选功能


Posted in Javascript onDecember 08, 2015

AngularJS是为了克服HTML在构建应用上的不足而设计的。HTML是一门很好的为静态文本展示设计的声明式语言,但要构建WEB应用的话它就显得乏力了。所以我做了一些工作(你也可以觉得是小花招)来让浏览器做我想要的事。

这里用到AngularJS四大特性之二----双向数据绑定

注意:没写一行DOM代码!这就是ng的优点,bootstrap.css为了布局,JS代码也只是简单创建ng模块和ng控制器

效果:

AngularJS实现全选反选功能

<!DOCTYPE html>
<html lang="en" ng-app="myModule5"><!--3、ng-app="myModule5"启动ng并调用模块-->
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="css/bootstrap.css">
<title>全选/取消全选</title>
</head>
<body>
<div class="container" ng-controller="myCtrl5"><!--4、ng-controller="myCtrl5"启用控制器-->
<h2>全选和取消全选</h2>
<table class="table table-bordered">
<thead>
<tr>
<th>选择</th>
<th>姓名</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<input ng-checked="selectAll" type="checkbox">
</td>
<td>Tom</td>
<td>
<button class="btn btn-danger btn-xs">删除</button>
</td>
</tr>
<tr>
<td>
<input ng-checked="selectAll" type="checkbox">
</td>
<td>Mary</td>
<td>
<button class="btn btn-danger btn-xs">删除</button>
</td>
</tr>
<tr>
<td>
<input ng-checked="selectAll" type="checkbox">
</td>
<td>King</td>
<td>
<button class="btn btn-danger btn-xs">删除</button>
</td>
</tr>
</tbody>
</table>
<input type="checkbox" ng-model="selectAll">
<span ng-hide="selectAll">全选</span>
<span ng-show="selectAll">取消全选</span>
</div>
<script src="js/angular.js"></script><!--1、引入angularJS-->
<script>
//2、创建自定义模块和控制器
angular.module('myModule5', ['ng']).
controller('myCtrl5', function($scope){
});
</script>
</body>
</html>

ps:AngularJs 简单实现全选,多选操作

很多时候我们在处理CURD(增删改查)的时候需要实现批量操作数据,这时候就必须使用多选操作。

Angular 中实现如下(当然还有很多种比笔者写的更好的方法,这里只是简单的实现。)

HTML:

<section>
<pre>{{choseArr}}</pre>
全选: <input type="checkbox" ng-model="master" ng-click="all(master,tesarry)">
<div ng-repeat="z in tesarry">
<input id={{z}} type="checkbox" ng-model="x" ng-checked="master" ng-click="chk(z,x)">{{z}}
</div>
<a href="#" class="btn btn-danger" ng-click="delete()" > 删除</a>
</section>

页面效果如下:(CSS采用bootstrap) 

AngularJS实现全选反选功能

JS代码:

$scope.tesarry=[‘1‘,‘2‘,‘3‘,‘4‘,‘5‘];//初始化数据
$scope.choseArr=[];//定义数组用于存放前端显示
var str="";//
var flag=‘‘;//是否点击了全选,是为a
$scope.x=false;//默认未选中
$scope.all= function (c,v) {//全选
if(c==true){
$scope.x=true;
$scope.choseArr=v;
}else{
$scope.x=false;
$scope.choseArr=[""];
}
flag=‘a‘;
};
$scope.chk= function (z,x) {//单选或者多选
if(flag==‘a‘) {//在全选的基础上操作
str = $scope.choseArr.join(‘,‘) + ‘,‘;
}
if (x == true) {//选中
str = str + z + ‘,‘;
} else {
str = str.replace(z + ‘,‘, ‘‘);//取消选中
}
$scope.choseArr=(str.substr(0,str.length-1)).split(‘,‘);
};
$scope.delete= function () {// 操作CURD
if($scope.choseArr[0]==""||$scope.choseArr.length==0){//没有选择一个的时候提示
alert("请至少选中一条数据在操作!")
return;
};
for(var i=0;i<$scope.choseArr.length;i++){
//alert($scope.choseArr[i]);
console.log($scope.choseArr[i]);//遍历选中的id
}
};
Javascript 相关文章推荐
JavaScript移除数组元素减少长度的方法
Sep 05 Javascript
Jquery 动态循环输出表格具体方法
Nov 23 Javascript
js实现全屏漂浮广告移入光标停止移动
Dec 02 Javascript
jQuery判断一个元素是否可见的方法
Jun 05 Javascript
javascript获取网页各种高宽及位置的方法总结
Jul 27 Javascript
浅谈js原生拖放
Nov 21 Javascript
基于JavaScript实现Tab选项卡切换效果
Nov 24 Javascript
vue.js动态数据绑定学习笔记
May 19 Javascript
浅谈angularJS的$watch失效问题的解决方案
Aug 11 Javascript
vuex进阶知识点巩固
May 20 Javascript
微信小程序实现省市区三级地址选择
Jun 21 Javascript
对TypeScript库进行单元测试的方法
Jul 18 Javascript
JS操作XML实例总结(加载与解析XML文件、字符串)
Dec 08 #Javascript
JS组件Bootstrap Table表格行拖拽效果实现代码
Aug 27 #Javascript
JS获取月份最后天数、最大天数与某日周数的方法
Dec 08 #Javascript
AngularJS Module方法详解
Dec 08 #Javascript
JS组件Bootstrap实现弹出框和提示框效果代码
Dec 08 #Javascript
JS与jQ读取xml文件的方法
Dec 08 #Javascript
js实现select下拉框菜单
Dec 08 #Javascript
You might like
页面使用密码保护代码
2013/04/10 Javascript
JS实现模仿微博发布效果实例代码
2013/12/16 Javascript
JQuery中ajax方法访问web服务实例
2015/07/18 Javascript
js判断移动端是否安装某款app的多种方法
2015/12/18 Javascript
全面解析bootstrap格子布局
2016/05/22 Javascript
Bootstrap三种表单布局的使用方法
2016/06/21 Javascript
用jquery获取自定义的标签属性的值简单实例
2016/09/17 Javascript
JavaScript 链式结构序列化详解
2016/09/30 Javascript
简单谈谈ES6的六个小特性
2016/11/18 Javascript
谈谈Vue.js——vue-resource全攻略
2017/01/16 Javascript
详解angular2封装material2对话框组件
2017/03/03 Javascript
jquery中封装函数传递当前元素的方法示例
2017/05/05 jQuery
JS库之Waypoints的用法详解
2017/09/13 Javascript
微信小程序富文本渲染引擎的详解
2017/09/30 Javascript
浅析vue.js数组的变异方法
2018/06/30 Javascript
react 兄弟组件如何调用对方的方法示例
2018/10/23 Javascript
vue项目中自定义video视频控制条的实现代码
2020/04/26 Javascript
vue-cli3 热更新配置操作
2020/09/18 Javascript
将Python代码打包为jar软件的简单方法
2015/08/04 Python
python2.6.6如何升级到python2.7.14
2018/04/08 Python
Python设计模式之命令模式原理与用法实例分析
2019/01/11 Python
Windows 安装 Anaconda3+PyCharm的方法步骤
2019/06/13 Python
关于 Python opencv 使用中的 ValueError: too many values to unpack
2019/06/28 Python
Python 中PyQt5 点击主窗口弹出另一个窗口的实现方法
2019/07/04 Python
Django上使用数据可视化利器Bokeh解析
2019/07/31 Python
Python实现微信机器人的方法
2019/09/06 Python
python怎么对数字进行过滤
2020/07/05 Python
Python3 pyecharts生成Html文件柱状图及折线图代码实例
2020/09/29 Python
Python并发爬虫常用实现方法解析
2020/11/19 Python
python中Array和DataFrame相互转换的实例讲解
2021/02/03 Python
北京麒麟网信息技术有限公司网络游戏测试面试题
2013/09/28 面试题
什么是SCM(软件配置管理)
2014/08/16 面试题
研究生自我鉴定范文
2013/10/30 职场文书
商务英语广告词大全
2014/03/18 职场文书
校园音乐节目广播稿
2015/08/19 职场文书
详解Django中 render() 函数的使用方法
2021/04/22 Python