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]点出统计器
Oct 11 Javascript
javascript 内存回收机制理解
Jan 17 Javascript
js简单实现删除记录时的提示效果
Dec 05 Javascript
JavaScript组合拼接字符串的效率对比测试
Nov 06 Javascript
超实用的JavaScript表单代码段
Feb 26 Javascript
jQuery Validate验证框架详解(推荐)
Dec 17 Javascript
详解如何在vue项目中使用lodop打印插件
Sep 27 Javascript
vue-for循环嵌套操作示例
Jan 28 Javascript
ionic+html5+API实现双击返回键退出应用
Sep 17 Javascript
layui table 获取分页 limit的方法
Sep 20 Javascript
vue从零实现一个消息通知组件的方法详解
Mar 16 Javascript
详细聊聊浏览器是如何看闭包的
Nov 11 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
全国FM电台频率大全 - 14 江西省
2020/03/11 无线电
php cache类代码(php数据缓存类)
2010/04/15 PHP
基于PHP的简单采集数据入库程序
2014/07/30 PHP
PHP中使用匿名函数操作数据库的例子
2014/11/17 PHP
php compact 通过变量创建数组
2016/11/15 PHP
php封装实现钉钉机器人报警接口的示例代码
2020/08/08 PHP
基于jquery的finkyUI插件与Ajax实现页面数据加载功能
2010/12/03 Javascript
javascript如何判断输入的url是否正确
2014/04/11 Javascript
window.location不跳转的问题解决方法
2014/04/17 Javascript
简述jQuery ajax的执行顺序
2016/01/05 Javascript
js如何改变文章的字体大小
2016/01/08 Javascript
浅析javascript函数表达式
2016/02/10 Javascript
动态加载js、css的实例代码
2016/05/26 Javascript
JavaScript数据存储 Cookie篇
2016/07/02 Javascript
微信小程序 支付功能开发错误总结
2017/02/21 Javascript
js+css实现打字效果
2020/06/24 Javascript
Angular5集成eventbus的示例代码
2018/07/19 Javascript
vue 指令之气泡提示效果的实现代码
2018/10/18 Javascript
vue slot与传参实例代码讲解
2019/04/28 Javascript
在Django的模型中执行原始SQL查询的方法
2015/07/21 Python
Python遍历文件夹和读写文件的实现代码
2016/08/28 Python
pycharm访问mysql数据库的方法步骤
2019/06/18 Python
VPS CENTOS 上配置python,mysql,nginx,uwsgi,django的方法详解
2019/07/01 Python
用pytorch的nn.Module构造简单全链接层实例
2020/01/14 Python
CSS3颜色值RGBA与渐变色使用介绍
2020/03/06 HTML / CSS
使用html2canvas实现将html内容写入到canvas中生成图片
2020/01/03 HTML / CSS
Oracle中delete,truncate和drop的区别
2016/05/05 面试题
什么是Smart Navigation?
2016/07/03 面试题
应用电子技术专业个人求职信
2013/09/21 职场文书
技术总监岗位职责
2013/12/05 职场文书
党员教师个人对照检查材料范文
2014/09/25 职场文书
同学聚会通知短信
2015/04/20 职场文书
观后感格式
2015/06/19 职场文书
结婚司仪主持词
2015/06/29 职场文书
2015年行政管理人员工作总结
2015/10/15 职场文书
nginx设置资源请求目录的方式详解
2022/05/30 Servers