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 对象模型 执行模型
Dec 06 Javascript
Javascript 八进制转义字符(8进制)
Apr 08 Javascript
JavaScript将页面表格导出为Excel的具体实现
Dec 27 Javascript
AngularJS动态绑定HTML的方法分析
Nov 07 Javascript
详解angular2采用自定义指令(Directive)方式加载jquery插件
Feb 09 Javascript
node跨域请求方法小结
Aug 25 Javascript
微信小程序中button组件的边框设置的实例详解
Sep 27 Javascript
使用DataTable插件实现异步加载数据
Nov 19 Javascript
使用jQuery 操作table 完成单元格合并的实例
Dec 27 jQuery
关于React动态加载路由处理的相关问题
Jan 07 Javascript
swiper实现异形轮播效果
Nov 28 Javascript
JavaScript中Object、map、weakmap的区别分析
Dec 15 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模板技术原理【一】
2008/01/10 PHP
php防注入,表单提交值转义的实现详解
2013/06/10 PHP
php判断str字符串是否是xml格式数据的方法示例
2017/07/26 PHP
Yii 框架使用数据库(databases)的方法示例
2020/05/19 PHP
Javascript 类、命名空间、代码组织代码
2011/07/31 Javascript
用js的for循环获取radio选中的值
2013/10/21 Javascript
jqgrid 表格数据导出实例
2013/11/21 Javascript
页面加载完后自动执行一个方法的js代码
2014/09/06 Javascript
JavaScript onkeypress事件入门实例(按下或按住一个键盘按键)
2014/10/17 Javascript
JQuery中层次选择器用法实例详解
2015/05/18 Javascript
JavaScript 动态三角函数实例详解
2017/01/08 Javascript
node.js程序作为服务并在windows下开机自启动(用forever)
2017/03/29 Javascript
Nodejs读取文件时相对路径的正确写法(使用fs模块)
2017/04/27 NodeJs
webpack配置文件和常用配置项介绍
2017/04/28 Javascript
web前端开发中常见的多列布局解决方案整理(一定要看)
2017/10/15 Javascript
javascript中floor使用方法总结
2019/02/02 Javascript
vue下使用nginx刷新页面404的问题解决
2019/08/02 Javascript
使用apifm-wxapi模块中的问题及解决方法
2019/08/05 Javascript
javascript 设计模式之组合模式原理与应用详解
2020/04/08 Javascript
JavaScript ES6 Class类实现原理详解
2020/05/08 Javascript
在Python中使用zlib模块进行数据压缩的教程
2015/06/26 Python
Python字符串拼接的几种方法整理
2017/08/02 Python
Python栈的实现方法示例【列表、单链表】
2020/02/22 Python
在Python IDLE 下调用anaconda中的库教程
2020/03/09 Python
Python Tornado之跨域请求与Options请求方式
2020/03/28 Python
python selenium 获取接口数据的实现
2020/12/07 Python
利用CSS3制作简单的3d半透明立方体图片展示
2017/03/25 HTML / CSS
30岁生日感言
2014/01/25 职场文书
护士长竞聘书
2014/03/31 职场文书
幼儿园小班教师寄语
2014/04/03 职场文书
宣传工作经验材料
2014/06/02 职场文书
2015年国税春训心得体会
2015/03/09 职场文书
乡镇党建工作总结2015
2015/05/19 职场文书
南阳市白酒市场的调查报告
2019/11/08 职场文书
基于HTML十秒做出淘宝页面
2021/10/24 HTML / CSS
《游戏王:大师决斗》新活动上线 若无符合卡组可免费租用
2022/04/13 其他游戏