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 相关文章推荐
JS面向对象编程 for Cookie
Sep 19 Javascript
javascript一个无懈可击的实例化XMLHttpRequest的方法
Oct 13 Javascript
JQuery工具函数汇总
Jun 15 Javascript
基于insertBefore制作简单的循环插空效果
Sep 21 Javascript
Javascript之String对象详解
Jun 08 Javascript
详解Angular路由 ng-route和ui-router的区别
May 22 Javascript
jquery实现回车键触发事件(实例讲解)
Nov 21 jQuery
学习使用ExpressJS 4.0中的新Router的用法
Nov 06 Javascript
JS选取DOM元素常见操作方法实例分析
Dec 10 Javascript
JS为什么说async/await是generator的语法糖详解
Jul 11 Javascript
Vue 打包体积优化方案小结
May 20 Javascript
vue3为什么要用proxy替代defineProperty
Oct 19 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
DC最新动画电影:《战争之子》为何内容偏激,毁了一个不错的漫画
2020/04/09 欧美动漫
php数据库连接
2006/10/09 PHP
Yii使用CLinkPager分页实例详解
2014/07/23 PHP
PHP使用GETDATE获取当前日期时间作为一个关联数组的方法
2015/03/19 PHP
对PHP依赖注入的理解实例分析
2016/10/09 PHP
php 数据结构之链表队列
2017/10/17 PHP
ASP中用Join和Array,可以加快字符连接速度的代码
2007/08/22 Javascript
js 函数调用模式小结
2011/12/26 Javascript
jquery无法设置checkbox选中即没有变成选中状态
2014/03/27 Javascript
Js实现无刷新删除内容
2015/04/29 Javascript
JavaScript操作Cookie方法实例分析
2015/05/27 Javascript
JavaScript触发onScroll事件的函数节流详解
2016/12/14 Javascript
vuejs使用FormData实现ajax上传图片文件
2017/08/08 Javascript
使用async、enterproxy控制并发数量的方法详解
2018/01/02 Javascript
详解webpack 最简打包结果分析
2019/02/20 Javascript
一些你可能不熟悉的JS知识点总结
2019/03/15 Javascript
小程序中canvas的drawImage方法参数使用详解
2019/07/04 Javascript
jquery实现直播弹幕效果
2019/11/28 jQuery
Vue v-bind动态绑定class实例方法
2020/01/15 Javascript
Javascript查看大图功能代码实现
2020/05/07 Javascript
python使用标准库根据进程名如何获取进程的pid详解
2017/10/31 Python
PyTorch快速搭建神经网络及其保存提取方法详解
2018/04/28 Python
对python中基于tcp协议的通信(数据传输)实例讲解
2019/07/22 Python
django一对多模型以及如何在前端实现详解
2019/07/24 Python
django 中的聚合函数,分组函数,F 查询,Q查询
2019/07/25 Python
Django配置MySQL数据库的完整步骤
2019/09/07 Python
python 批量修改 labelImg 生成的xml文件的方法
2019/09/09 Python
Django框架模板用法入门教程
2019/11/04 Python
PyInstaller将Python文件打包为exe后如何反编译(破解源码)以及防止反编译
2020/04/15 Python
分享PyCharm最新激活码(真永久激活方法)不用每月找安装参数或最新激活码了
2020/12/27 Python
Html5之webcoekt播放JPEG图片流
2020/09/22 HTML / CSS
你的自行车健身专家:FaFit24
2016/11/16 全球购物
2014幼儿园大班工作总结
2014/11/10 职场文书
教师专业技术工作总结2015
2015/05/13 职场文书
家长意见和建议怎么写
2015/06/04 职场文书
数据结构课程设计心得体会
2016/01/15 职场文书