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 相关文章推荐
在JavaScript中使用inline函数的问题
Mar 08 Javascript
不一样的文字闪烁 轮番闪烁
Nov 11 Javascript
扩展jquery实现客户端表格的分页、排序功能代码
Mar 16 Javascript
JavaScript设置IFrame高度自适应(兼容各主流浏览器)
Jun 05 Javascript
JavaScript实现彩虹文字效果的方法
Apr 16 Javascript
Bootstrap中文本框的宽度变窄并且加入一副验证码图片的实现方法
Jun 23 Javascript
深入理解jQuery()方法的构建原理
Dec 05 Javascript
node文字生成图片的示例代码
Oct 26 Javascript
ES6 javascript中Class类继承用法实例详解
Oct 30 Javascript
vue动态删除从数据库倒入列表的某一条方法
Sep 29 Javascript
Angular2实现的秒表及改良版示例
May 10 Javascript
原生js实现3D轮播图
Mar 21 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
PHP 源代码压缩小工具
2009/12/22 PHP
PHP下判断网址是否有效的代码
2011/10/08 PHP
WampServer下安装多个版本的PHP、mysql、apache图文教程
2015/01/07 PHP
PHP页面跳转操作实例分析(header方法)
2016/09/28 PHP
Fleaphp常见函数功能与用法示例
2016/11/15 PHP
Apache+PHP+MySQL搭建PHP开发环境图文教程
2020/08/06 PHP
很全的显示阴历(农历)日期的js代码
2009/01/01 Javascript
script标签的 charset 属性使用说明
2010/12/04 Javascript
基于Jquery的仿照flash放大图片效果代码
2011/03/16 Javascript
JavaScript中解析JSON数据的三种方法
2015/07/03 Javascript
JS模拟简易滚动条效果代码(附demo源码)
2016/04/05 Javascript
JS中判断null的方法分析
2016/11/21 Javascript
bootstrap table使用入门基本用法
2017/05/24 Javascript
jQuery插件jsonview展示json数据
2018/05/26 jQuery
JavaScript数据结构与算法之基本排序算法定义与效率比较【冒泡、选择、插入排序】
2019/02/21 Javascript
基于Vue 实现一个中规中矩loading组件
2019/04/03 Javascript
vue父子组件的通信方法(实例详解)
2019/11/10 Javascript
jquery实现拖拽小方块效果
2020/12/10 jQuery
python中 ? : 三元表达式的使用介绍
2013/10/09 Python
详解在Python中处理异常的教程
2015/05/24 Python
python实现文件路径和url相互转换的方法
2015/07/06 Python
Python获取暗黑破坏神3战网前1000命位玩家的英雄技能统计
2016/07/04 Python
python对json的相关操作实例详解
2017/01/04 Python
Python matplotlib通过plt.scatter画空心圆标记出特定的点方法
2018/12/13 Python
Python通过Manager方式实现多个无关联进程共享数据的实现
2019/11/07 Python
Python3和pyqt5实现控件数据动态显示方式
2019/12/13 Python
详解selenium + chromedriver 被反爬的解决方法
2020/10/28 Python
企业管理部经理岗位职责
2013/12/24 职场文书
怎么写自荐书范文
2014/02/12 职场文书
职工代表大会主持词
2014/04/01 职场文书
2014年技术部工作总结
2014/12/12 职场文书
上学路上观后感
2015/06/16 职场文书
体育委员竞选稿
2015/11/21 职场文书
2016秋季小学开学寄语
2015/12/03 职场文书
二维码条形码生成的JavaScript脚本库
2022/07/07 Javascript
Redis主从复制操作和配置详情
2022/09/23 Redis