Heim  >  Artikel  >  Web-Frontend  >  AngularJS+Bootstrap+Table-Mehrfachauswahl-Codebeispiel (Alles auswählen), das die Zeilenauswahl mit einem Klick unterstützt, um Bearbeitungs- und Löschfunktionen zu implementieren

AngularJS+Bootstrap+Table-Mehrfachauswahl-Codebeispiel (Alles auswählen), das die Zeilenauswahl mit einem Klick unterstützt, um Bearbeitungs- und Löschfunktionen zu implementieren

黄舟
黄舟Original
2017-03-27 14:36:202217Durchsuche

In diesem Artikel wird hauptsächlich Angularjs Bootstrap Tabellen-Mehrfachauswahl (alle Auswahl) vorgestellt, die die Zeilenauswahl mit einem Klick unterstützt, um Bearbeitungs- und Löschfunktionen zu implementieren ist erforderlich. Freunde können sich auf den endgültigen Effekt von

beziehen:

AngularJS+Bootstrap+Table-Mehrfachauswahl-Codebeispiel (Alles auswählen), das die Zeilenauswahl mit einem Klick unterstützt, um Bearbeitungs- und Löschfunktionen zu implementieren

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">
  <p 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>
 <p>已选数量:{{count}}</p>
 <p>已选对象:{{selectData}}</p>
</p>
 </body>
</html>

script.js

// Code goes here
var routerApp = angular.module(&#39;routerApp&#39;, [ &#39;ngAnimate&#39;, &#39;ngSanitize&#39;, 
                   &#39;ui.bootstrap&#39;]);
routerApp.controller(&#39;zdTable&#39;, [
    &#39;$scope&#39;,
    function(scope) {
      console.log(&#39;controller&#39;);
     //初始化数据
      scope.datas = [
        {name:&#39;admin1&#39;, rem:&#39;备注&#39;}, 
        { name:&#39;admin2&#39;, rem:&#39;备注&#39;}, 
        { name:&#39;admin3&#39;, rem:&#39;备注&#39;}
        ];
      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(&#39;filterTable&#39;, function() {
  return function(obj) {
    var newObj = {};
    for ( var i in obj) {
      var property = obj[i];
      if(i != &#39;checked&#39;){
        newObj[i] = property;
      }
    }
    //console.log(newObj);
    return newObj;
  };
});

Das obige ist der detaillierte Inhalt vonAngularJS+Bootstrap+Table-Mehrfachauswahl-Codebeispiel (Alles auswählen), das die Zeilenauswahl mit einem Klick unterstützt, um Bearbeitungs- und Löschfunktionen zu implementieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn