Angular多选、全选、批量选择操作实例代码


Posted in Javascript onMarch 10, 2017

在前台开发过程中,列表批量选择是一个开发人员经常遇到的功能,列表批量选择的实现方式很多,但是原理基本相同,本文主要来讲AngularJs如何简单的实现列表批量选择功能。

首先来看html代码

<table cellpadding="0" cellspacing="0" border="0" class="datatable table table-hover dataTable">
      <thead>
      <tr>
        <th><input type="checkbox" ng-click="selectAll($event)" ng-checked="isSelectedAll()"/></th>
        <th>姓名</th>
        <th>单位</th>
        <th>电话</th>
      </tr>
      </thead>
      <tbody>
      <tr ng-repeat="item in content">
        <td><input type="checkbox" name="selected" ng-checked="isSelected(item.id)" ng-click="updateSelection($event,item.id)"/></td>
        <td>{{item.baseInfo.name}}</td>
        <td>{{item.orgCompanyName}}</td>
        <td>{{item.baseInfo.mobileNumberList[0].value}}</td>
      </tr>
      </tbody>
    </table>

html里面简单建立一个表格,与批量选择相关的只有两处。

一处是第3行 ng-click="selectAll($event)" ,用来做全选的操作; ng-checked="isSelectedAll() 用来判断当前列表内容是否被全选。

一处是第12行 ng-click="updateSelection($event,item.id) ,用来对某一列数据进行选择操作; ng-checked="isSelected(item.id) 用来判断当前列数据是否被选中。

然后需要在与该页面相对应的controller中实现与批量选择相关的方法

//创建变量用来保存选中结果
          $scope.selected = [];
          var updateSelected = function (action, id) {
            if (action == 'add' && $scope.selected.indexOf(id) == -1) $scope.selected.push(id);
            if (action == 'remove' && $scope.selected.indexOf(id) != -1) $scope.selected.splice($scope.selected.indexOf(id), 1);
          };
          //更新某一列数据的选择
          $scope.updateSelection = function ($event, id) {
            var checkbox = $event.target;
            var action = (checkbox.checked ? 'add' : 'remove');
            updateSelected(action, id);
          };
          //全选操作
          $scope.selectAll = function ($event) {
            var checkbox = $event.target;
            var action = (checkbox.checked ? 'add' : 'remove');
            for (var i = 0; i < $scope.content.length; i++) {
              var contact = $scope.content[i];
              updateSelected(action, contact.id);
            }
          };
          $scope.isSelected = function (id) {
            return $scope.selected.indexOf(id) >= 0;
          };
          $scope.isSelectedAll = function () {
            return $scope.selected.length === $scope.content.length;
          };

controller中主要是对html中用到的几个方法的实现,相对来讲实现代码还是比较简洁易懂的。

多选效果展示如下

Angular多选、全选、批量选择操作实例代码

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript 验证码的实例代码(附效果图)
Mar 22 Javascript
解析javascript系统错误:-1072896658的解决办法
Jul 08 Javascript
JSON+Jquery省市区三级联动
Jan 13 Javascript
JavaScript中split与join函数的进阶使用技巧
May 03 Javascript
BootStrap智能表单demo示例详解
Jun 13 Javascript
微信jssdk用法汇总
Jul 16 Javascript
js简易版购物车功能
Jun 17 Javascript
Kindeditor单独调用单图上传增加预览功能的实例
Jul 31 Javascript
js中的闭包学习心得
Feb 06 Javascript
全面了解JavaScript的作用域链
Apr 03 Javascript
JS实现audio音频剪裁剪切复制播放与上传(步骤详解)
Jul 28 Javascript
webstorm建立vue-cli脚手架的傻瓜式教程
Sep 22 Javascript
jQuery插件HighCharts绘制2D带有Legend的饼图效果示例【附demo源码下载】
Mar 10 #Javascript
Vue.js之slot深度复制详解
Mar 10 #Javascript
JS实现的自动打字效果示例
Mar 10 #Javascript
jquery实现的table排序功能示例
Mar 10 #Javascript
微信小程序 向左滑动删除功能的实现
Mar 10 #Javascript
常用的js方法合集
Mar 10 #Javascript
利用Angular+Angular-Ui实现分页(代码加简单)
Mar 10 #Javascript
You might like
PHP网站基础优化方法小结
2008/09/29 PHP
批量去除PHP文件中bom的PHP代码
2012/03/13 PHP
php 批量替换程序的具体实现代码
2013/10/04 PHP
php中session退出登陆问题
2014/02/27 PHP
php封装db类连接sqlite3数据库的方法实例
2017/12/19 PHP
Laravel框架模板继承操作示例
2018/06/11 PHP
PHP连接SQL Server的方法分析【基于thinkPHP5.1框架】
2019/05/06 PHP
js 数组实现一个类似ruby的迭代器
2009/10/27 Javascript
基于jQuery的星级评分插件
2011/08/12 Javascript
javascript 进阶篇1 正则表达式,cookie管理,userData
2012/03/14 Javascript
jquery写个checkbox——类似邮箱全选功能
2013/03/19 Javascript
jQuery JSON实现无刷新三级联动实例探讨
2013/05/28 Javascript
jquery中html、val与text三者属性取值的联系与区别介绍
2013/12/29 Javascript
D3.js中data(), enter() 和 exit()的问题详解
2015/08/17 Javascript
Javascript控制div属性动态变化实例分析
2015/10/08 Javascript
jQuery实现鼠标选中文字后弹出提示窗口效果【附demo源码】
2016/09/05 Javascript
AngularJS入门教程之表单校验用法示例
2016/11/02 Javascript
使用react实现手机号的数据同步显示功能的示例代码
2018/04/03 Javascript
vuex 项目结构目录及一些简单配置介绍
2018/04/08 Javascript
Angular4 反向代理Details实践
2018/05/30 Javascript
vue实现文件上传功能
2018/08/13 Javascript
JSONP原理及应用实例详解
2018/09/13 Javascript
vue使用video.js进行视频播放功能
2019/07/18 Javascript
js获取本日、本周、本月的时间代码
2020/02/01 Javascript
小程序实现列表倒计时功能
2021/01/29 Javascript
python实现文件路径和url相互转换的方法
2015/07/06 Python
tensorflow: 查看 tensor详细数值方法
2018/06/13 Python
使用python来调用CAN通讯的DLL实现方法
2019/07/03 Python
python list转置和前后反转的例子
2019/08/26 Python
python线程的几种创建方式详解
2019/08/29 Python
将HTML5 Canvas的内容保存为图片借助toDataURL实现
2013/05/20 HTML / CSS
Internet体系结构
2014/12/21 面试题
英文自荐信常用句子
2014/03/26 职场文书
优秀党员学习焦裕禄精神思想汇报范文
2014/09/10 职场文书
2015年政务公开工作总结
2015/05/19 职场文书
SQL Server查询某个字段在哪些表中存在
2022/03/03 SQL Server