English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Esempio di implementazione di Angular per il filtraggio complesso della tabella e la funzione di eliminazione

本文实例讲述了Angular实现较为复杂的表格过滤、删除功能。分享给大家供大家参考,具体如下:

先来看看运行效果:

以下是具体代码:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>it.oldtoolbag.com Angular filter, delete</title>
    <style>
      table{
        border: 1px solid black;
        width: 800px;
      }
      td, th{
        border: 1px solid black;
        text-align: center;
      }
      th{
        background: #767674;
      }
      .d1{
        width: 50%;
        margin: 0 auto;
      }
      .d2{
        margin-top: 10px;
      }
      .btn{
        background: green;
        color: white;
      }
      .btn1{
        background: red;
        color: white;
      }
      tr:nth-child(2n){
        background-color: gainsboro;
      }
    </style>
    <script src="angular.min.js"></script>
    <script type="text/javascript" src="jquery-1.9.1.min.js" ></script>
    <script>
      angular.module("MyApp",[])
      .controller("democ",function($scope,$filter){
        $scope.isc = false;
        $scope.arrs = [{
                checked:false,
                id:7,
                name:"OPPO R9s",
                user:"赵云",
                tel:15777777777,
                price:4999,
                city:"北京",
                time:new Date('03-09 10:00'),
                sta:"已发货"
               },
               {
                checked:false,
                id:12,
                name:"VIVO X20",
                user:"关羽",
                tel:15333333333,
                price:2998,
                city:"上海",
                time:new Date('08-22 10:00'),
                sta:"已发货"
               },
               {
                checked:false,
                id:1,
                name:"iPhone 8 Plus",
                user:"曹操",
                tel:15111111111,
                price:7588,
                city:"北京",
                time:new Date('09-04 10:00'),
                sta:"已发货"
               },
               {
                checked:false,
                id:11,
                name:"小*Note5",
                user:"黄忠",
                tel:13222222222,
                price:699,
                city:"重庆",
                time:new Date('02-28 10:00'),
                sta:"Spedizione"
               },
               {
                checked:false,
                id:1,
                name:"小*Mix2",
                user:"黄盖",
                tel:13111111111,
                price:3299,
                city:"北京",
                time:new Date('03-015 10:00'),
                sta:"Spedizione"
               };
               $scope.arr = $scope.arrs;
               $scope.seluser = function() {
                 $scope.arr = [];
                 var val = $scope.reg_user;
                 var f = $filter("filter");
                 $scope.arr = f($scope.arrs, {"user":val});
               }
               $scope.seltel = function() {
                 $scope.arr = [];
                 var val = $scope.reg_tel;
                 var f = $filter("filter");
                 $scope.arr = f($scope.arrs,{"tel":val});
               }
               $scope.selsta = function(){
                $scope.arr = [];
                var val = $scope.reg_sta;
                var f = $filter("filter");
                $scope.arr = f($scope.arrs,{"sta":val});
               }
               $scope.ckAll = function(){
                var ck = $scope.sta_ck;
                for(var i=0; i<$scope.arrs.length; i++){
                  $scope.arrs[i].checked = ck;
                }
               }
               $scope.del = function(th){
                $scope.arrs.splice(th,1);
               }
               $scope.delAll = function(){
                for(var i=0; i<$scope.arrs.length; i++){
                  if($scope.arrs[i].checked==true){
                    $scope.arrs.splice(i,1);
                    i--;
                  }
                }
               }
               $scope.add = function(){
                var d=new Date();
                $scope.arrs.push({
                  checked:false,
                  id:$scope.a_id,
                  name:$scope.a_name,
                  user:$scope.a_user,
                  tel:$scope.a_tel,
                  price:$scope.a_price,
                  city:$scope.a_city,
                  time:d,
                  sta:"Spedizione"
                });
                $scope.arr = $scope.arrs;
                $scope.isc = false;
               }
      });
    </script>
  </head>
<body ng-app="MyApp" ng-controller="democ">
    <div class="d1">
      <div>
        <input type="text" placeholder="Ricerca nome utente" ng-change="seluser()" ng-model="reg_user"/>
        <input type="text" placeholder="Ricerca numero di telefono" ng-change="seltel()" ng-model="reg_tel"/>
        <select>
          <option>Seleziona Città</option>
          <option>Beijing</option>
          <option>Shanghai</option>
          <option>Guangzhou</option>
        </select>
        <select ng-change="selsta()" ng-model="reg_sta">
          <option value="">Seleziona Stato</option>
          <option value="发货">In Lavorazione</option>
          <option value="已发货">Spedito</option>
        </select>
        <select ng-model="selid">
          <option value="">--Seleziona--</option>
          <option value="id">ID in Ordine Crescente</option>
          <option value="-id">ID in Ordine Decrescente</option>
        </select>
        <select ng-model="selmonth">
          <option value="">Mese di Inizio</option>
          <option value="1">1</option>
          <option value="2">2</option>
          <option value="3">3</option>
          <option value="4">4</option>
          <option value="5">5</option>
          <option value="6">6</option>
          <option value="7">7</option>
          <option value="8">8</option>
          <option value="9">9</option>
          <option value="10">10</option>
          <option value="11">11</option>
          <option value="12">12</option>
        </select>
        <select ng-model="lastmonth">
          <option value="">Mese di Fine</option>
          <option value="1">1</option>
          <option value="2">2</option>
          <option value="3">3</option>
          <option value="4">4</option>
          <option value="5">5</option>
          <option value="6">6</option>
          <option value="7">7</option>
          <option value="8">8</option>
          <option value="9">9</option>
          <option value="10">10</option>
          <option value="11">11</option>
          <option value="12">12</option>
        </select>
      </div>
      <div class="d2">
        <input type="button" value="Aggiungi Ordine" class="btn" ng-click="isc=true"/>
        <input type="button" value="Spedisci in Bulk" class="btn"/>
        <input type="button" value="Elimina in Bulk" class="btn1" ng-click="delAll()"/>
        Parola Sensibile: 米(Nome Prodotto)->Sostituisci con *
      </div>
      <div>
        <table cellpadding="0" cellspacing="0">
          <tr>
            <th><input type="checkbox" ng-change="ckAll()" ng-model="sta_ck"/></th>
            <th>ID</th>
            <th>Nome Prodotto</th>
            <th>Nome Utente</th>
            <th>Numero di Telefono</th>
            <th>Prezzo</th>
            <th>Città</th>
            <th>Tempo di Ordine</th>
            <th>Stato</th>
            <th>Operazione</th>
          </tr>
          <tr ng-repeat="a in arr|orderBy : selid | filter:{time:selmonth} | filter:{time:lastmonth}">
            <td><input type="checkbox" ng-model="a.checked"/></td>
            <td>{{a.id}}</td>
            <td>{{a.name}}</td>
            <td>{{a.user}}</td>
            <td>{{a.tel}}</td>
            <td>{{a.price|currency : '¥'}}</td>
            <td>{{a.city}}</td>
            <td>{{a.time|date : 'MM-GG hh:mm:ss'}}</td>
            <td>
              <span ng-show="a.sta=='Spedito'">{{a.sta}}</span>
              <span ng-show="a.sta=='Spedizione'"><a href="#" rel="external nofollow" ng-click="a.sta='Spedito'">{{a.sta}}</a></span>
            </td>
            <td><input type="button" value="Elimina" ng-click="del(this)"/></td>
          </tr>
        </table>
      </div>
      <div ng-show="isc">
           I D:<input type="text" ng-model="a_id"/><br />
           Nome del prodotto:<input type="text" ng-model="a_name"/><br />
           Nome utente:<input type="text" ng-model="a_user"/><br />
           Numero di telefono:<input type="text" ng-model="a_tel"/><br />
           Valore:<input type="text" ng-model="a_price"/><br />
          Città:<input type="text" ng-model="a_city"/><br />
          <input type="button" value="Salva" ng-click="add()"/>
      </div>
    </div>
  </body>
</html>

PS:Ci sono ancora alcune funzioni non complete nel codice, chi è interessato può testare e migliorare autonomamente.

Chi è interessato a ulteriori contenuti su AngularJS può consultare le sezioni speciali di questo sito: 'Riassunto delle tecniche di manipolazione delle direttive AngularJS', 'Guida di base e avanzata AngularJS' e 'Riassunto dell'architettura MVC AngularJS'.

Spero che questo articolo possa essere utile per la progettazione di applicazioni AngularJS.

Dichiarazione: il contenuto di questo articolo è stato raccolto da Internet, il diritto d'autore appartiene ai rispettivi proprietari, il contenuto è stato caricato autonomamente dagli utenti di Internet, questo sito non detiene i diritti di proprietà, non è stato editato manualmente e non assume alcuna responsabilità legale correlata. Se trovi contenuti sospetti di violazione del copyright, invia una e-mail a: notice#oldtoolbag.com (al momento dell'invio dell'e-mail, sostituisci # con @) per segnalare, fornendo prove pertinenti. Una volta verificata, questo sito eliminerà immediatamente il contenuto sospetto di violazione del copyright.

Ti potrebbe interessare