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 相关文章推荐
Div Select挡住的解决办法
Aug 07 Javascript
jQeury淡入淡出需要注意的问题
Sep 08 Javascript
JQuery的read函数与js的onload不同方式实现
Mar 18 Javascript
谈谈关于JavaScript 中的 MVC 模式
Apr 11 Javascript
AJAX跨域请求json数据的实现方法
Nov 11 Javascript
headjs实现网站并行加载但顺序执行JS
Nov 29 Javascript
史上最全JavaScript数组去重的十种方法(推荐)
Aug 17 Javascript
Vue精简版风格概述
Jan 30 Javascript
vant(ZanUi)结合async-validator实现表单验证的方法
Dec 06 Javascript
countUp.js实现数字滚动效果
Oct 18 Javascript
jQuery单页面文字搜索插件jquery.fullsearch.js的使用方法
Feb 04 jQuery
JS + HTML 罗盘式时钟的实现
May 21 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
php 计算两个时间戳相隔的时间的函数(小时)
2009/12/18 PHP
php URL跳转代码 减少外链
2011/06/25 PHP
PHP Class&amp;Object -- 解析PHP实现二叉树
2013/06/25 PHP
完善CodeIgniter在IDE中代码提示功能的方法
2014/07/19 PHP
php实现图片文件与下载文件防盗链的方法
2014/11/03 PHP
php获得文件大小和文件创建时间的方法
2015/03/13 PHP
php解析字符串里所有URL地址的方法
2015/04/03 PHP
检查输入的是否是数字使用keyCode配合onkeypress事件
2014/01/23 Javascript
js如何获取object类型里的键值
2014/02/18 Javascript
深入分析jquery解析json数据
2014/12/09 Javascript
两种方法解决javascript url post 特殊字符转义 + &amp; #
2016/04/13 Javascript
JS添加删除DIV的简单实例
2016/07/08 Javascript
浅析ES6的八进制与二进制整数字面量
2016/08/30 Javascript
Bootstrap中的Dropdown下拉菜单更改为悬停(hover)触发
2016/08/31 Javascript
BootStrap实现轮播图效果(收藏)
2016/12/30 Javascript
详解JS深拷贝与浅拷贝
2020/08/04 Javascript
[13:18]《一刀刀一天》之DOTA全时刻21:详解TI新赛制 A队再露獠牙
2014/06/24 DOTA
用yum安装MySQLdb模块的步骤方法
2016/12/15 Python
python编程羊车门问题代码示例
2017/10/25 Python
Python爬虫爬取一个网页上的图片地址实例代码
2018/01/16 Python
浅谈Python实现2种文件复制的方法
2018/01/19 Python
Pycharm导入Python包,模块的图文教程
2018/06/13 Python
浅谈dataframe中更改列属性的方法
2018/07/10 Python
windows 10 设定计划任务自动执行 python 脚本的方法
2019/09/11 Python
Pandas中两个dataframe的交集和差集的示例代码
2020/12/13 Python
CSS3 input框的实现代码类似Google登录的动画效果
2020/08/04 HTML / CSS
德国在线购买葡萄酒网站:Geile Weine
2019/09/24 全球购物
开办饭店创业计划书
2013/12/28 职场文书
我的老师教学反思
2014/05/01 职场文书
纪念9.18事变演讲稿
2014/09/14 职场文书
2014年乡镇个人工作总结
2014/12/03 职场文书
幼儿园元旦主持词
2015/07/06 职场文书
golang中的空slice案例
2021/04/27 Golang
python读取并查看npz/npy文件数据以及数据显示方法
2022/04/14 Python
高通2023 年将发布高性能PC处理器
2022/04/29 数码科技
MySQL中TIMESTAMP类型返回日期时间数据中带有T的解决
2022/12/24 MySQL