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 相关文章推荐
选择TreeView控件的树状数据节点的JS方法(jquery)
Feb 06 Javascript
ExtJS 下拉多选框lovcombo
May 19 Javascript
JavaScript中this关键词的使用技巧、工作原理以及注意事项
May 20 Javascript
在JavaScript中使用开平方根的sqrt()方法
Jun 15 Javascript
轻松学习jQuery插件EasyUI EasyUI创建树形菜单
Nov 30 Javascript
详解为Angular.js内置$http服务添加拦截器的方法
Dec 20 Javascript
AngularJS页面传参的5种方式
Apr 01 Javascript
基于webpack-hot-middleware热加载相关错误的解决方法
Feb 22 Javascript
vue 实现axios拦截、页面跳转和token 验证
Jul 17 Javascript
JavaScript求一个数组中重复出现次数最多的元素及其下标位置示例
Jul 23 Javascript
实例详解vue中的$root和$parent
Apr 29 Javascript
JS实现的碰撞检测与周期移动完整示例
Sep 02 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
CI框架自动加载session出现报错的解决办法
2014/06/17 PHP
Yii2中YiiBase自动加载类、引用文件方法分析(autoload)
2016/07/25 PHP
jquery ajax 登录验证实现代码
2009/09/23 Javascript
跨浏览器开发经验总结(四) 怎么写入剪贴板
2010/05/13 Javascript
Javascript面向对象编程(三) 非构造函数的继承
2011/08/28 Javascript
JavaScript中for-in遍历方式示例介绍
2014/02/11 Javascript
利用vue实现模态框组件
2016/12/19 Javascript
JavaScript 中 apply 、call 的详解
2017/03/21 Javascript
JavaScript JMap类定义与使用方法示例
2019/01/22 Javascript
详解vue beforeRouteEnter 异步获取数据给实例问题
2019/08/09 Javascript
使用vue制作滑动标签
2019/09/21 Javascript
Vue 使用beforeEach实现登录状态检查功能
2019/10/31 Javascript
Electron 打包问题:electron-builder 下载各种依赖出错(推荐)
2020/07/09 Javascript
vscode+gulp轻松开发小程序的完整步骤
2020/10/18 Javascript
typescript编写微信小程序创建项目的方法
2021/01/29 Javascript
Python实现新浪博客备份的方法
2016/04/27 Python
基于Django的ModelForm组件(详解)
2017/12/07 Python
使用Python读取安卓手机的屏幕分辨率方法
2018/03/31 Python
对python For 循环的三种遍历方式解析
2019/02/01 Python
python 将有序数组转换为二叉树的方法
2019/03/26 Python
Django认证系统user对象实现过程解析
2020/03/02 Python
HTML5的结构和语义(3):语义性的块级元素
2008/10/17 HTML / CSS
美国蔬菜和植物种子公司:Burpee
2017/02/01 全球购物
幼儿教育感言
2014/02/05 职场文书
班干部演讲稿
2014/04/24 职场文书
2014年自愿离婚协议书
2014/10/10 职场文书
学校领导班子成员查摆问题及整改措施
2014/10/28 职场文书
2015元旦文艺汇演主持稿(开场白+结束语)
2014/12/14 职场文书
护理实习生带教计划
2015/01/16 职场文书
大雁塔导游词
2015/02/04 职场文书
绍兴鲁迅故居导游词
2015/02/09 职场文书
国庆节慰问信
2015/02/15 职场文书
施工现场安全管理制度
2015/08/05 职场文书
Mysql实现主从配置和多主多从配置
2021/06/02 MySQL
在Python中如何使用yield
2021/06/07 Python
微信告警的zabbix监控系统 监控整个NGINX集群
2022/04/18 Servers