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 相关文章推荐
js控制框架刷新
Aug 01 Javascript
查询绑定数据岛的表格中的文本并修改显示方式的js代码
Dec 15 Javascript
javascript 节点遍历函数
Mar 28 Javascript
jquery刷新页面的实现代码(局部及全页面刷新)
Jul 11 Javascript
模拟多级复选框效果的jquery代码
Aug 13 Javascript
基于jQuery实现Div窗口震动特效代码-代码简单
Aug 28 Javascript
javascript设计简单的秒表计时器
Sep 05 Javascript
js实现点击图片自动提交action的简单方法
Oct 16 Javascript
JS沙箱模式实例分析
Sep 04 Javascript
详解vue + vuex + directives实现权限按钮的思路
Oct 24 Javascript
Django+Vue跨域环境配置详解
Jul 06 Javascript
为什么要使用Vuex的介绍
Jan 19 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
PHPShop存在多个安全漏洞
2006/10/09 PHP
PHP个人网站架设连环讲(三)
2006/10/09 PHP
PHP学习之字符串比较和查找
2011/04/17 PHP
smarty模板引擎中自定义函数的方法
2015/01/22 PHP
PHP简单数据库操作类实例【支持增删改查及链式操作】
2016/10/10 PHP
PHPExcel实现表格导出功能示例【带有多个工作sheet】
2018/06/13 PHP
PHP判断是否是微信打开还是浏览器打开的方法
2019/02/27 PHP
PHP单元测试配置与使用方法详解
2019/12/27 PHP
PHP连接MySQL数据库操作代码实例解析
2020/07/11 PHP
javascript实现的在当前窗口中漂浮框的代码
2010/03/15 Javascript
JavaScript随机排序(随即出牌)
2010/09/17 Javascript
用jquery统计子菜单的条数示例代码
2013/10/18 Javascript
页面加载完毕后滚动条自动滚动一定位置
2014/02/20 Javascript
滚动条响应鼠标滑轮事件实现上下滚动的js代码
2014/06/30 Javascript
JavaScript模拟实现键盘打字效果
2015/06/29 Javascript
12个超实用的JQuery代码片段
2015/11/02 Javascript
微信小程序 开发工具快捷键整理
2016/10/31 Javascript
xmlplus组件设计系列之列表(4)
2017/04/26 Javascript
解决vue动态为数据添加新属性遇到的问题
2018/09/18 Javascript
Node.js Stream ondata触发时机与顺序的探索
2019/03/08 Javascript
微信小程序本地存储实现每日签到、连续签到功能
2019/10/09 Javascript
通过实例解析JavaScript常用排序算法
2020/09/02 Javascript
[51:53]完美世界DOTA2联赛决赛日 Inki vs LBZS 第二场 11.08
2020/11/10 DOTA
python爬取NUS-WIDE数据库图片
2016/10/05 Python
利用python微信库itchat实现微信自动回复功能
2017/05/18 Python
对python中for、if、while的区别与比较方法
2018/06/25 Python
python3 tkinter实现点击一个按钮跳出另一个窗口的方法
2019/06/13 Python
Django中提供的6种缓存方式详解
2019/08/05 Python
通过实例解析Python调用json模块
2019/12/11 Python
TensorFlow 读取CSV数据的实例
2020/02/05 Python
Flask缓存静态文件的具体方法
2020/08/02 Python
css3与html5实现响应式导航菜单(导航栏)效果分享
2014/02/12 HTML / CSS
C#里面可以避免一个类被其他类继承么?如何?
2013/09/26 面试题
销售类个人求职信范文
2013/09/25 职场文书
工作简报怎么写
2015/07/21 职场文书
JavaScript实现简单拖拽效果
2021/09/15 Javascript