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 相关文章推荐
js实现运行代码需要刷新的解决方法
Aug 18 Javascript
jQuery对象[0]是什么含义?
Jul 31 Javascript
jQuery hover 延时器实现代码
Mar 12 Javascript
简略说明Javascript中的= =(等于)与= = =(全等于)区别
Apr 16 Javascript
jQuery中offset()方法用法实例
Jan 16 Javascript
解决node-webkit 不支持html5播放mp4视频的方法
Mar 11 Javascript
跟我学习javascript的prototype使用注意事项
Nov 17 Javascript
理解javascript定时器中的setTimeout与setInterval
Feb 23 Javascript
如何学JavaScript?前辈的经验之谈
Dec 28 Javascript
JavaScript如何获取一个元素的样式信息
Jul 29 Javascript
详解json串反转义(消除反斜杠)
Aug 12 Javascript
原生JS实现记忆翻牌游戏
Jul 31 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常用字符串输出方法分析(echo,print,printf及sprintf)
2021/03/09 PHP
JQuery 弹出框定位实现方法
2010/12/02 Javascript
浏览器页面区域大小的js获取方法
2013/09/21 Javascript
js检测输入内容全为空格的方法
2014/05/03 Javascript
简单三步实现报表页面集成天气
2016/12/15 Javascript
react-router4 配合webpack require.ensure 实现异步加载的示例
2018/01/18 Javascript
AngularJS与后端php的数据交互方法
2018/08/13 Javascript
对类Vue的MVVM前端库的实现代码
2018/09/07 Javascript
详解Vue CLI 3.0脚手架如何mock数据
2018/11/23 Javascript
vue实现移动端省市区选择
2019/09/27 Javascript
JS实现容器模块左右拖动效果
2020/01/14 Javascript
完美解决vue 中多个echarts图表自适应的问题
2020/07/19 Javascript
VueCli生产环境打包部署跨域失败的解决
2020/11/13 Javascript
详解uniapp的全局变量实现方式
2021/01/11 Javascript
Python入门_条件控制(详解)
2017/05/16 Python
python中lambda()的用法
2017/11/16 Python
Python语言实现将图片转化为html页面
2017/12/06 Python
利用Hyperic调用Python实现进程守护
2018/01/02 Python
python版opencv摄像头人脸实时检测方法
2018/08/03 Python
详解python读取和输出到txt
2019/03/29 Python
pycharm运行scrapy过程图解
2019/11/22 Python
简单了解python列表和元组的区别
2020/05/14 Python
Python drop方法删除列之inplace参数实例
2020/06/27 Python
Django自定义YamlField实现过程解析
2020/11/11 Python
为世界各地的女性设计和生产时尚服装:ROMWE
2016/09/17 全球购物
美国一家运动专业鞋类零售商:Warehouse Shoe Sale(WSS)
2018/03/28 全球购物
The North Face北面德国官网:美国著名户外品牌
2018/12/12 全球购物
美国豪华的多品牌精品店:The Webster
2019/07/31 全球购物
TUMI香港官网:国际领先的行李箱、背囊品牌
2021/03/01 全球购物
用缩写的指针比较"if(p)" 检查空指针是否可靠?如果空指针的内部表达不是0会怎么样?
2014/01/05 面试题
电子商务专业自我鉴定
2013/12/18 职场文书
计算机求职自荐信范文
2014/04/19 职场文书
师德师风演讲稿
2014/05/05 职场文书
高中课前三分钟演讲稿
2014/08/18 职场文书
会计人员岗位职责
2015/02/03 职场文书
风之谷观后感
2015/06/11 职场文书