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 图片预览效果 推荐
Dec 22 Javascript
js 触发select onchange事件代码
Mar 20 Javascript
node.js实现逐行读取文件内容的代码
Jun 27 Javascript
jquery中EasyUI实现异步树
Mar 01 Javascript
jquery仿QQ登录账号选择下拉框效果
Mar 22 Javascript
BootStrap文件上传样式超好看【持续更新】
May 10 Javascript
JavaScript和jquery获取父级元素、子级元素、兄弟元素的方法
Jun 05 Javascript
jquery自定义表单验证插件
Oct 12 Javascript
JS实现图片转换成base64的各种应用场景实例分析
Jun 22 Javascript
基于javascript实现碰撞检测
Mar 12 Javascript
解决vue打包 npm run build-test突然不动了的问题
Nov 13 Javascript
TypeScript 内置高级类型编程示例
Sep 23 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
Apache2 httpd.conf 中文版
2006/11/17 PHP
PHP中文处理 中文字符串截取(mb_substr)和获取中文字符串字数
2011/11/10 PHP
php去除html标记的原生函数详解
2015/01/27 PHP
PHP使用FFmpeg获取视频播放总时长与码率等信息
2016/09/13 PHP
thinkphp3.2同时连接两个数据库的简单方法
2019/08/13 PHP
刷新页面实现方式总结(HTML,ASP,JS)
2008/11/13 Javascript
js导出格式化的excel 实例方法
2013/07/17 Javascript
JavaScript实现在标题栏上显示当前日期的方法
2015/03/19 Javascript
jQuery实现图像旋转动画效果
2016/05/29 Javascript
基于js实现二级下拉联动
2016/12/17 Javascript
bootstrap table操作技巧分享
2017/02/15 Javascript
微信小程序教程系列之设置标题栏和导航栏(7)
2020/06/29 Javascript
分享Bootstrap简单表格、表单、登录页面
2017/08/04 Javascript
Vuejs 2.0 子组件访问/调用父组件的方法(示例代码)
2018/02/08 Javascript
Vuex模块化应用实践示例
2020/02/03 Javascript
JavaScript实现刮刮乐效果
2020/11/01 Javascript
Python中使用urllib2防止302跳转的代码例子
2014/07/07 Python
Python数据结构之Array用法实例
2014/10/09 Python
详解Python使用simplejson模块解析JSON的方法
2016/03/24 Python
Python环境下搭建属于自己的pip源的教程
2016/05/05 Python
Python matplotlib 画图窗口显示到gui或者控制台的实例
2018/05/24 Python
使用 Python 实现文件递归遍历的三种方式
2018/07/18 Python
Python实现定时自动关闭的tkinter窗口方法
2019/02/16 Python
python字符串的拼接方法总结
2019/11/18 Python
Python:type、object、class与内置类型实例
2019/12/25 Python
如何在Python3中使用telnetlib模块连接网络设备
2020/09/21 Python
Python入门基础之数字字符串与列表
2021/02/01 Python
美国折扣网站:jClub
2017/08/07 全球购物
公共场所禁烟倡议书
2014/08/30 职场文书
中学生旷课检讨书2篇
2014/10/09 职场文书
幼儿园教师师德承诺书
2015/04/28 职场文书
英文投诉信格式
2015/07/03 职场文书
赞助商致辞
2015/07/30 职场文书
导游词之吉林花园山
2019/10/17 职场文书
HTML中的表单Form实现居中效果
2021/05/25 HTML / CSS
Elasticsearch 聚合查询和排序
2022/04/19 Python