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最新动画教程+iso光盘下载
Jan 22 Javascript
jQuery.extend()的实现方式详解及实例
Jun 29 Javascript
js获取光标位置和设置文本框光标位置示例代码
Jan 09 Javascript
jquery教程限制文本框只能输入数字和小数点示例分享
Jan 13 Javascript
JavaScript用JQuery呼叫Server端方法示例代码
Sep 03 Javascript
怎么通过onclick事件获取js函数返回值(代码少)
Jul 28 Javascript
Bootstrap实现登录校验表单(带验证码)
Jun 23 Javascript
ES6新特性之模块Module用法详解
Apr 01 Javascript
JavaScript中严格判断NaN的方法
Feb 16 Javascript
JS实现的RC4加密算法示例
Aug 16 Javascript
vue 解决addRoutes多次添加路由重复的操作
Aug 04 Javascript
Vue全局事件总线你了解吗
Feb 24 Vue.js
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
php实现mysql同步的实现方法
2009/10/21 PHP
php中mysql连接方式PDO使用详解
2015/02/25 PHP
PHP getallheaders无法获取自定义头(headers)的问题
2016/03/23 PHP
php 根据自增id创建唯一编号类
2017/04/06 PHP
PHP超全局变量实现原理及代码解析
2020/09/01 PHP
关于Jqzoom的使用心得 jquery放大镜效果插件
2010/04/12 Javascript
ASP.NET中基于JQUERY的高性能的TreeView补充
2011/02/23 Javascript
js实现非常简单的焦点图切换特效实例
2015/05/07 Javascript
基于jquery实现select选择框内容左右移动添加删除代码分享
2015/08/25 Javascript
js实现复选框的全选和取消全选效果
2017/01/03 Javascript
Bootstrap进度条实现代码解析
2017/03/07 Javascript
Angular.JS利用ng-disabled属性和ng-model实现禁用button效果
2017/04/05 Javascript
详解Vue学习笔记进阶篇之列表过渡及其他
2017/07/17 Javascript
input 标签实现输入框带提示文字效果(两种方法)
2017/10/09 Javascript
Vuejs监听vuex中值的变化的方法示例
2018/12/02 Javascript
jQuery事件blur()方法的使用实例讲解
2019/03/30 jQuery
Elasticsearch实现复合查询高亮结果功能
2019/09/10 Javascript
在vue中使用axios实现post方式获取二进制流下载文件(实例代码)
2019/12/16 Javascript
如何区分vue中的v-show 与 v-if
2020/09/08 Javascript
[01:17:55]VGJ.T vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/20 DOTA
[02:29]大剑、皮鞭、女装,这届DOTA2勇士令状里都有
2020/07/17 DOTA
Python简单日志处理类分享
2015/02/14 Python
Python探索之URL Dispatcher实例详解
2017/10/28 Python
Django forms组件的使用教程
2018/10/08 Python
python实现一个简单的ping工具方法
2019/01/31 Python
python调用c++传递数组的实例
2019/02/13 Python
Python时间差中seconds和total_seconds的区别详解
2019/12/26 Python
瑞典时尚服装购物网站:Miinto.se
2017/10/30 全球购物
餐饮主管岗位职责
2013/12/10 职场文书
应届毕业生求职信范文
2014/05/08 职场文书
公司法人授权委托书范本
2014/09/12 职场文书
市委常委班子党的群众路线教育实践活动整改措施
2014/10/02 职场文书
军训个人总结
2015/03/03 职场文书
预防职务犯罪警示教育心得体会
2016/01/15 职场文书
浅谈Nginx 中的两种限流方式
2021/03/31 Servers
Python字符串对齐方法使用(ljust()、rjust()和center())
2021/04/26 Python