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不可用的问题探究
Oct 01 Javascript
JavaScript学习笔记之JS对象
Jan 22 Javascript
javascript实现base64 md5 sha1 密码加密
Sep 09 Javascript
如何利用Promises编写更优雅的JavaScript代码
May 17 Javascript
第二篇Bootstrap起步
Jun 21 Javascript
浅谈Vue.js
Mar 02 Javascript
基于js的变量提升和函数提升(详解)
Sep 17 Javascript
JS实现访问DOM对象指定节点的方法示例
Apr 04 Javascript
解决vue this.$forceUpdate() 处理页面刷新问题(v-for循环值刷新等)
Jul 26 Javascript
JS插件clipboard.js实现一键复制粘贴功能
Dec 04 Javascript
vue项目打包部署到服务器的方法示例
Aug 27 Javascript
elementUI 动态生成几行几列的方法示例
Jul 11 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 批量生成html,txt文件的实现代码
2013/06/26 PHP
使用PHP curl模拟浏览器抓取网站信息
2013/10/28 PHP
ThinkPHP调用百度翻译类实现在线翻译
2014/06/26 PHP
php中使用Ajax时出现Error(c00ce56e)的详细解决方案
2014/11/03 PHP
php获取Google机器人访问足迹的方法
2015/04/15 PHP
关于php支持的协议与封装协议总结(推荐)
2017/11/17 PHP
laravel 解决groupBy时出现的错误 isn't in Group By问题
2019/10/17 PHP
两个select之间option的互相添加操作(jquery实现)
2009/11/12 Javascript
jquery中动态效果小结
2010/12/16 Javascript
JQuery对checkbox操作 (循环获取)
2011/05/20 Javascript
网页整体变灰白色(兼容各浏览器)实例
2013/04/21 Javascript
jQuery源码分析之jQuery中的循环技巧详解
2014/09/06 Javascript
jquery实现带缩略图的可定制高度画廊效果(5种)
2015/08/28 Javascript
JS实现淡蓝色简洁竖向Tab点击切换效果
2015/10/06 Javascript
JavaScript中的return语句简单介绍
2015/12/07 Javascript
JavaScript中使用数组方法汇总
2016/02/16 Javascript
AngularJS定时器的使用与移除操作方法【interval与timeout】
2016/12/14 Javascript
React操作真实DOM实现动态吸底部的示例
2017/10/23 Javascript
django加载本地html的方法
2018/05/27 Python
Python3日期与时间戳转换的几种方法详解
2019/06/04 Python
python 利用pywifi模块实现连接网络破解wifi密码实时监控网络
2019/09/16 Python
python ftplib模块使用代码实例
2019/12/31 Python
Python Tornado批量上传图片并显示功能
2020/03/26 Python
CSS3 translate导致字体模糊的实例代码
2019/08/30 HTML / CSS
韩国著名的在线综合购物网站:Akmall
2016/08/07 全球购物
美国波西米亚风格精品店:South Moon Under
2019/10/26 全球购物
internal修饰符起什么作用
2013/12/16 面试题
经贸专业毕业生求职信
2014/03/23 职场文书
自动化专业毕业生求职信
2014/06/18 职场文书
班级文化标语
2014/06/23 职场文书
会计试用期自我评价
2014/09/19 职场文书
2014年办公室人员工作总结
2014/12/09 职场文书
优秀大学生自荐信
2015/03/26 职场文书
2015年仓库管理工作总结
2015/05/25 职场文书
2015年小学数学教师个人工作总结
2015/05/25 职场文书
MySQL 表空间碎片的概念及相关问题解决
2021/05/07 MySQL