Angularjs+bootstrap+table多选(全选)支持单击行选中实现编辑、删除功能


Posted in Javascript onMarch 27, 2017

最终实现效果:

Angularjs+bootstrap+table多选(全选)支持单击行选中实现编辑、删除功能

index.html

<!DOCTYPE html>
<html>
 <head>
  <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.js"></script>
  <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular-animate.js"></script>
  <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular-sanitize.js"></script>
  <script src="//angular-ui.github.io/bootstrap/ui-bootstrap-tpls-2.3.1.js"></script>
  <link href="//netdna.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="external nofollow" rel="stylesheet">
  <link rel="stylesheet" href="style.css" rel="external nofollow" >
  <script src="script.js"></script>
 </head>
 <body ng-app="routerApp">
  <div ng-controller="zdTable">
  <table class="table table-bordered" >
    <thead>
     <tr>
        <th>
          <input type="checkbox" ng-model="selectAll" ng-change="changeAll()" /> 选择</th>
        <th>序号</th>
        <th>用户</th>
        <th>备注</th>
        <th>操作</th>
      </tr>
    </thead>
    <tbody>
      <tr ng-repeat="row in datas" ng-init="outerIndex = $index" ng-click="changeCurrents(row, $event)">
        <td><input type="checkbox" ng-model="row.checked" ng-click="changeCurrent(row, $event)" /></td>
        <td ng-bind="outerIndex+1"></td>
        <td ng-repeat="tddata in row | filterTable">
            {{tddata}}
        </td>
        <td>
           <button type="button" class="btn btn-info" ng-click="zdTableEdit(row, $event)">编辑</button>
           <button type="button" class="btn btn-danger" ng-click="zdTableRemove(row, $event)">删除</button>
        </td>
      </tr>
    </tbody>
  </table>
 <div>已选数量:{{count}}</div>
 <div>已选对象:{{selectData}}</div>
</div>
 </body>
</html>

script.js

// Code goes here
var routerApp = angular.module('routerApp', [ 'ngAnimate', 'ngSanitize', 
                   'ui.bootstrap']);
routerApp.controller('zdTable', [
    '$scope',
    function(scope) {
      console.log('controller');
     //初始化数据
      scope.datas = [
        {name:'admin1', rem:'备注'}, 
        { name:'admin2', rem:'备注'}, 
        { name:'admin3', rem:'备注'}
        ];
      scope.count = 0;//已选择数量 
      scope.selectData = [];//已选对象
      //选择单个(取消选择单个
      scope.changeCurrent = function(current, $event) {
       //计算已选数量 true加, false减
        scope.count += current.checked ? 1 : -1;
        //判断是否全选,选数量等于数据长度为true
    scope.selectAll = scope.count === scope.datas.length;
        //统计已选对象
        scope.selectData = [];
        angular.forEach(scope.datas, function(item) {
          if(item.checked){
            scope.selectData[scope.selectData.length] = item;
          }
        });
       $event.stopPropagation();//阻止冒泡
      };
      //单击行选中
      scope.changeCurrents = function(current, $event) {
        if(current.checked == undefined){
          current.checked = true;
        }else{
          current.checked = !current.checked;
        }
        scope.changeCurrent(current, $event);
      };
    //全选(取消全选
      scope.changeAll = function() {
        //console.log(scope.selectAll);
        angular.forEach(scope.datas, function(item) {
          item.checked = scope.selectAll;
        });
        scope.count = scope.selectAll ? scope.datas.length : 0;
        if (scope.selectAll) {
          scope.selectData = scope.datas;
        } else {
          scope.selectData = [];
        }
      };
      //编辑事件
      scope.zdTableEdit = function(item, $event){
        console.log(item);
        $event.stopPropagation();//阻止冒泡
      };
      //删除事件
      scope.zdTableRemove = function(item, $event){
        console.log(item);
        $event.stopPropagation();//阻止冒泡
      };
    } ]);
//去掉不需要显示的字段  
routerApp.filter('filterTable', function() {
  return function(obj) {
    var newObj = {};
    for ( var i in obj) {
      var property = obj[i];
      if(i != 'checked'){
        newObj[i] = property;
      }
    }
    //console.log(newObj);
    return newObj;
  };
});

以上所述是小编给大家介绍的Angularjs bootstrap table多选(全选)支持单击行选中实现编辑、删除功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
IE php关于强制下载文件的代码
Aug 23 Javascript
用Javascript评估用户输入密码的强度实现代码
Nov 30 Javascript
js特效,页面下雪的小例子
Jun 17 Javascript
JavaScript中判断变量是数组、函数或是对象类型的方法
Feb 25 Javascript
Javascript函数式编程简单介绍
Oct 11 Javascript
多种js图片预加载实现方式分享
Feb 19 Javascript
JQuery EasyUI学习教程之datagrid 添加、修改、删除操作
Jul 09 Javascript
JS比较两个数值的大小实例
Nov 25 Javascript
jQuery监听浏览器窗口大小的变化实例
Feb 07 Javascript
在vue中使用公共过滤器filter的方法
Jun 26 Javascript
Node.js assert断言原理与用法分析
Jan 04 Javascript
React中使用UMEditor的方法示例
Dec 27 Javascript
JS闭包用法实例分析
Mar 27 #Javascript
vue 2.0组件与v-model详解
Mar 27 #Javascript
JavaScript无缝滚动效果的实例代码
Mar 27 #Javascript
JS数组搜索之折半搜索实现方法分析
Mar 27 #Javascript
javascript实现下雨效果
Mar 27 #Javascript
HTML的select控件美化
Mar 27 #Javascript
JS实现的点击表头排序功能示例
Mar 27 #Javascript
You might like
支持php4、php5的mysql数据库操作类
2008/01/10 PHP
PHP中读写文件实现代码
2011/10/20 PHP
PHP动态生成javascript文件的2个例子
2014/04/11 PHP
简单实现PHP留言板功能
2016/12/21 PHP
PHP7 安装event扩展的实现方法
2019/10/08 PHP
不一样的文字闪烁 轮番闪烁
2009/11/11 Javascript
jquery mobile动态添加元素之后不能正确渲染解决方法说明
2014/03/05 Javascript
JavaScript实现班级随机点名小应用需求的具体分析
2014/05/12 Javascript
js获取浏览器高度 窗口高度 元素尺寸 偏移属性的方法
2016/11/21 Javascript
在DWR中实现直接获取一个JAVA类的返回值的两种方法
2016/12/25 Javascript
js canvas实现擦除效果示例代码
2017/04/26 Javascript
基于vue实现swipe分页组件实例
2017/05/25 Javascript
基于mpvue搭建微信小程序项目框架的教程详解
2019/04/10 Javascript
layui实现给某一列加点击事件
2019/10/26 Javascript
Nodejs技巧之Exceljs表格操作用法示例
2019/11/06 NodeJs
JS apply用法总结和使用场景实例分析
2020/03/14 Javascript
详解为什么Vue中不要用index作为key(diff算法)
2020/04/04 Javascript
基于javascript实现日历功能原理及代码实例
2020/05/07 Javascript
python使用SMTP发送qq或sina邮件
2017/10/21 Python
Python3简单实例计算同花的概率代码
2017/12/06 Python
Python爬虫_城市公交、地铁站点和线路数据采集实例
2018/01/10 Python
python3 kmp 字符串匹配的方法
2018/07/07 Python
Python线程之定位与销毁的实现
2019/02/17 Python
PyQt+socket实现远程操作服务器的方法示例
2019/08/22 Python
韩国现代百货官网:Hmall
2018/03/21 全球购物
小学教师的个人自我鉴定
2013/10/26 职场文书
财务人员担保书
2014/05/13 职场文书
应届大专生自荐书
2014/06/16 职场文书
法学求职信
2014/06/22 职场文书
运输企业安全生产责任书
2014/07/28 职场文书
班级出游活动计划书
2014/08/15 职场文书
法人授权委托书
2014/09/16 职场文书
音乐教育专业自荐信
2014/09/18 职场文书
2016年度师德标兵先进事迹材料
2016/02/26 职场文书
2019最新劳动仲裁申请书!
2019/07/08 职场文书
nginx容器方式反向代理实战
2022/04/18 Servers