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 相关文章推荐
JTrackBar水平拖动效果
Jul 15 Javascript
js点击选择文本的方法
Feb 09 Javascript
js淡入淡出的图片轮播效果代码分享
Aug 24 Javascript
jQuery Mobile和HTML5开发App推广注册页
Nov 07 Javascript
bootstrap fileinput组件整合Springmvc上传图片到本地磁盘
May 11 Javascript
利用C/C++编写node.js原生模块的方法教程
Jul 07 Javascript
JavaScript实现封闭区域布尔运算的示例代码
Jun 25 Javascript
JS在if中的强制类型转换方式
Jul 15 Javascript
angularJs在多个控制器中共享服务数据的方法
Sep 30 Javascript
小程序显示弹窗时禁止下层的内容滚动实现方法
Mar 20 Javascript
vue父子组件间引用之$parent、$children
May 20 Javascript
vue移动端弹起蒙层滑动禁止底部滑动操作
Jul 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里的中文变量说明
2011/07/23 PHP
phpMyAdmin 链接表的附加功能尚未激活问题的解决方法(已测)
2012/03/27 PHP
PHP屏蔽蜘蛛访问代码及常用搜索引擎的HTTP_USER_AGENT
2013/03/06 PHP
利用php递归实现无限分类 格式化数组的详解
2013/06/08 PHP
解析Linux下Varnish缓存的配置优化
2013/06/20 PHP
浅析十款PHP开发框架的对比
2013/07/05 PHP
php+mysql开发中的经验与常识小结
2019/03/25 PHP
JQuery 动画卷页 返回顶部 动画特效(兼容Chrome)
2010/02/15 Javascript
Javascript Math ceil()、floor()、round()三个函数的区别
2010/03/09 Javascript
javascript中的undefined 与 null 的区别  补充篇
2010/03/17 Javascript
使用delegate方法为一个tr标签加一个链接
2014/06/27 Javascript
JavaScript的事件代理和委托实例分析
2015/03/25 Javascript
Javascript通过overflow控制列表闭合与展开的方法
2015/05/15 Javascript
JS模拟酷狗音乐播放器收缩折叠关闭效果代码
2015/10/29 Javascript
prototype.js常用函数详解
2016/06/18 Javascript
angularJS 如何读写缓冲的方法(推荐)
2016/08/06 Javascript
DOM事件探秘篇
2017/02/15 Javascript
JS对象深度克隆实例分析
2017/03/16 Javascript
Vue.js用法详解
2017/11/13 Javascript
vue2.0+vue-dplayer实现hls播放的示例
2018/03/02 Javascript
vue用递归组件写树形控件的实例代码
2018/07/19 Javascript
JavaScript运行机制实例分析
2020/04/11 Javascript
python利用dlib获取人脸的68个landmark
2019/11/27 Python
Python函数的返回值、匿名函数lambda、filter函数、map函数、reduce函数用法实例分析
2019/12/26 Python
C#软件工程师英语面试题
2015/06/07 面试题
实习单位鉴定评语
2014/04/26 职场文书
模特大赛策划方案
2014/05/28 职场文书
公司应聘求职信
2014/06/21 职场文书
执法作风整顿剖析材料
2014/10/11 职场文书
乡镇一岗双责责任书
2015/01/29 职场文书
安全员岗位职责
2015/02/10 职场文书
检讨书怎么写
2015/05/07 职场文书
婚礼答谢词范文
2015/09/29 职场文书
2016国庆节67周年红领巾广播稿
2015/12/18 职场文书
nginx proxy_cache 缓存配置详解
2021/03/31 Servers
详细聊聊Oracle表碎片对性能有多大的影响
2022/03/19 Oracle