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实现网页上的浮动广告的简单方法
Jun 14 Javascript
Jquery中给animation加更多的运作效果实例
Sep 05 Javascript
javascript自然分类法算法实现代码
Oct 11 Javascript
JavaScript var声明变量背后的原理示例解析
Oct 12 Javascript
jquery表单验证框架提供的身份证验证方法(示例代码)
Dec 27 Javascript
js实现网页自动刷新可制作节日倒计时效果
May 27 Javascript
js实现图片放大和拖拽特效代码分享
Sep 05 Javascript
AngularJS 表单验证手机号的实例(非必填)
Nov 12 Javascript
vue学习教程之带你一步步详细解析vue-cli
Dec 26 Javascript
详解Angular5 服务端渲染实战
Jan 04 Javascript
微信小程序实现侧边栏分类
Oct 21 Javascript
Angular性能优化之第三方组件和懒加载技术
May 10 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 mb_convert_encoding 获取字符串编码类型实现代码
2009/04/26 PHP
Laravel关联模型中过滤结果为空的结果集(has和with区别)
2018/10/18 PHP
PHP读取XML文件的方法实例总结【DOMDocument及simplexml方法】
2019/09/10 PHP
event对象的方法 兼容多浏览器
2009/06/27 Javascript
jquery获取ASP.NET服务器端控件dropdownlist和radiobuttonlist生成客户端HTML标签后的value和text值
2010/06/28 Javascript
基于jquery的内容循环滚动小模块(仿新浪微博未登录首页滚动微博显示)
2011/03/28 Javascript
js写一个弹出层并锁屏效果实现代码
2012/12/07 Javascript
滚动条响应鼠标滑轮事件实现上下滚动的js代码
2014/06/30 Javascript
JavaScript获取鼠标移动时的坐标(兼容IE8、chome谷歌、Firefox)
2014/09/13 Javascript
jquery+ajax实现跨域请求的方法
2015/01/20 Javascript
基于jquery实现动态竖向柱状条特效
2016/02/12 Javascript
React.js入门学习第一篇
2016/03/30 Javascript
JS模仿腾讯图片站的图片翻页按钮效果完整实例
2016/06/21 Javascript
浅谈JS中的!=、== 、!==、===的用法和区别
2016/09/24 Javascript
Vue实现双向绑定的方法
2016/12/22 Javascript
基于jQuery实现一个marquee无缝滚动的插件
2017/03/09 Javascript
laravel5.3 vue 实现收藏夹功能实例详解
2018/01/21 Javascript
vue中如何实现pdf文件预览的方法
2018/07/12 Javascript
搭建基于express框架运行环境的方法步骤
2018/11/15 Javascript
其实你可以少写点if else与switch(推荐)
2019/01/10 Javascript
原生js+canvas实现下雪效果
2020/08/02 Javascript
微信小程序实现可长按移动控件
2020/11/01 Javascript
Python中对列表排序实例
2015/01/04 Python
python多线程方式执行多个bat代码
2016/06/07 Python
浅谈Series和DataFrame中的sort_index方法
2018/06/07 Python
Python 读取某个目录下所有的文件实例
2018/06/23 Python
如何清空python的变量
2020/07/05 Python
对Pytorch 中的contiguous理解说明
2021/03/03 Python
Bootstrap 学习分享
2012/11/12 HTML / CSS
Puritan’s Pride(普丽普莱)官方网站:美国最大最全的保健品公司之一
2016/10/23 全球购物
linux面试题参考答案(6)
2016/06/23 面试题
工程管理专业毕业生自荐信
2014/01/24 职场文书
参观考察邀请函范文
2014/01/29 职场文书
研究生个人学年总结
2015/02/14 职场文书
详解Python requests模块
2021/06/21 Python
Windows11里微软已经将驱动程序安装位置A盘删除
2021/11/21 数码科技