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 匿名函数的理解(透彻版)
Jan 28 Javascript
jquery仿京东导航/仿淘宝商城左侧分类导航下拉菜单效果
Apr 24 Javascript
在jquery boxy中添加百度地图坐标拾取注意流程
Apr 03 Javascript
input file上传 图片预览功能实例代码
Oct 25 Javascript
Angular的自定义指令以及实例
Dec 26 Javascript
angular+ionic 的app上拉加载更新数据实现方法
Jan 16 Javascript
浅谈jquery中ajax跨域提交的时候会有2次请求的问题
Nov 10 jQuery
AngularJS实现的根据数量与单价计算总价功能示例
Dec 26 Javascript
vue axios登录请求拦截器
Apr 02 Javascript
详解webpack的proxyTable无效的解决方案
Jun 15 Javascript
解决vue路由name同名,路由重复的问题
Aug 05 Javascript
vue 手机物理监听键+退出提示代码
Sep 09 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
虫族 Zerg 魔法科技
2020/03/14 星际争霸
百事可乐也出咖啡了 双倍咖啡因双倍快乐
2021/03/03 咖啡文化
如何限制访问者的ip(PHPBB的代码)
2006/10/09 PHP
php读取mysql乱码,用set names XXX解决的原理分享
2011/12/29 PHP
Jquery 弹出层插件实现代码
2009/10/24 Javascript
javascript判断用户浏览器插件安装情况的代码
2011/01/01 Javascript
javascript高级学习笔记整理
2011/08/14 Javascript
通过百度地图获取公交线路的站点坐标的js代码
2012/05/11 Javascript
JS判断变量是否为空判断是否null
2014/07/25 Javascript
简单实现js选项卡切换效果
2016/02/03 Javascript
玩转NODE.JS(四)-搭建简单的聊天室的代码
2016/11/11 Javascript
nodejs基于WS模块实现WebSocket聊天功能的方法
2018/01/12 NodeJs
Vue利用canvas实现移动端手写板的方法
2018/05/03 Javascript
详解React中setState回调函数
2018/06/14 Javascript
Vue插件打包与发布的方法示例
2018/08/20 Javascript
Vue-component全局注册实例
2018/09/06 Javascript
js实现ajax的用户简单登入功能
2020/06/18 Javascript
[00:37]2016完美“圣”典风云人物:AMS宣传片
2016/12/06 DOTA
浅谈python字符串方法的简单使用
2016/07/18 Python
django批量导入xml数据
2016/10/16 Python
python中安装模块包版本冲突问题的解决
2017/05/02 Python
详解python 字符串和日期之间转换 StringAndDate
2017/05/04 Python
利用Pyhton中的requests包进行网页访问测试的方法
2018/12/26 Python
python3.6根据m3u8下载mp4视频
2019/06/17 Python
Django 用户认证组件使用详解
2019/07/23 Python
python对验证码降噪的实现示例代码
2019/11/12 Python
Django模板标签中url使用详解(url跳转到指定页面)
2020/03/19 Python
python模块如何查看
2020/06/16 Python
程序设计HTML5 Canvas API
2013/04/08 HTML / CSS
世界上最大的专业美容用品零售商:Sally Beauty
2017/07/02 全球购物
贝斯特韦斯特酒店集团官网:Best Western
2019/01/03 全球购物
super关键字的用法
2012/04/10 面试题
人力资源部培训专员岗位职责
2014/01/02 职场文书
初中班主任教育随笔
2015/08/15 职场文书
高中政治教师教学反思
2016/02/23 职场文书
SQLServer 错误: 15404,无法获取有关 Windows NT 组/用户 WIN-8IVSNAQS8T7\Administrator 的信息
2021/06/30 SQL Server