Realisierung baumförmiger Sekundärtabellen auf Basis von Angular

Realisierung baumförmiger Sekundärtabellen auf Basis von Angular

Erster Blick auf die Wirkung:

Code:

1.html

  <div Klasse="Benutzerinhalt_Inhalt">
    <div>
      <Tabelle>
        <tr>
          <td>Knotenname</td>
          <td>Knotenverwaltungs-IP</td>
          <td>Knoten-Anmeldename</td> 
          <td>Node-Anmeldekennwort</td> 
        </tr>
        //Verwenden Sie ng-container als leeres Tag, um beim Platzieren von for- oder if-Ereignissen zu helfen, die nicht im Überprüfungselement gefunden werden können <ng-container *ngFor="let item of currentTotalList,let i = index">
          <tr>
            <td style="Farbe: #04AEB4;Cursor: Zeiger;" Klasse="img">
              <div>
                <div>{{item.name}}</div>
                <div>
        // Das Folgende ist ein Bild eines Pfeils, der zwischen dem Erweitern und Reduzieren des Pfeils wechselt. Durch Beurteilen, ob der aktuelle Klickindex gleich dem Listenindex ist, wird er erweitert, wenn er gleich ist, andernfalls wird er reduziert <img (click)="clickShowChildList(i,item.name)"
                    [attr.src]="i == currentClickOpenIndex?'../../assets/resource/img/bottom.png':'../../assets/resource/img/right.png'">
                </div>
              </div>
            </td>
            <td>{{item.ip}}</td>
            <td>{{item.Benutzername}}</td>
            <td>{{item.password}}</td>
          </tr>
        //Verwenden Sie erneut das ng-container-Tag, um die untergeordneten Elemente der Tabelle zu verschachteln <ng-container *ngFor="let childItem of item.nodeList, let j = index">
        // Da die for-Schleife und die if-Beurteilung nicht im selben Tag koexistieren können, wird unser verstecktes if-Ereignis im tr-Tag platziert. Indem beurteilt wird, ob der aktuell angeklickte Index mit dem Listenindex übereinstimmt, wird er ausgeblendet, wenn sie gleich sind, und angezeigt, wenn sie es nicht sind.
 
            <tr *ngIf="i == aktuellerClickOpenIndex">
              <td style="Farbe: #04AEB4;Cursor: Zeiger;" Klasse="img">
                <div>
                  <div>
                    {{childItem.masterIp}}</div>
                </div>
              </td>
              <td>{{childItem.ip}}</td>
              <td>{{childItem.Benutzername}}</td>
              <td>{{childItem.password}}</td>
            </tr>
          </ng-container>
        </ng-container>
 
      </Tabelle>
    </div>
    
  </div>

2. weniger

      .Benutzerinhalt_Inhalt{
        Breite: 100 %;
        Höhe: berechnet (~ „100 % – 60 Pixel“);
        Überlauf: automatisch;
        >div:n-tes-Kind(1){
          >Tabelle{
            Breite: 100 %;
            tr{
              td{
                Breite: 25 %;
                Textausrichtung: zentriert;
                Schriftgröße: 14px;
                Farbe: #fff;
                Polsterung: 16px 0px;
                Kastenschatten: 0 1px #333;
              }
            }
            .img {
              >div {
                Breite: 100 %;
                Anzeige: Flex;
                Position: relativ;
  
                >div:n-tes-Kind(1) {
                  Breite: 85 %;
                  Leerzeichen: Nowrap;
                  Textüberlauf: Auslassungspunkte;
                  -o-text-overflow:Auslassungspunkte;
                  Überlauf: versteckt;
                  Rand: 0 automatisch;
  
                }
              }
  
              img {
                Höhe: 10px !wichtig;
                Breite: 10px !wichtig;
                Rand links: 0 !wichtig;
                Position: absolut;
                rechts: 0;
                oben: 3px;
              }
            }
          }
        }
  
        >div:n-tes-Kind(2){
          Höhe: 80px;
          Breite: 90%;
          Anzeige: Flex;
          Elemente ausrichten: zentrieren;
          Rand: 0 automatisch;
          Inhalt ausrichten: Flex-Ende;
          #Seite{
            Anzeige: Tabelle;
          }
        }
      }

3.js

(1) Das Format der Daten der Tabelle currentTotalList ähnelt dem folgenden (Sie können selbst Simulationsdaten schreiben):

(2) Initialisieren Sie die aktuelle Klickindexvariable currentClickOpenIndex auf -1

(3) ist das Klickereignis des Auf- und Zuklappenpfeils:

  klickShowChildList = (i,item)=>{
    Konsole.log(i,dieser.aktuellerClickOpenIndex)
    wenn(this.currentClickOpenIndex==i){
      this.currentClickOpenIndex = -1
    }anders{
      this.currentClickOpenIndex = i
    }
  }

Und dann ist es geschafft...

Dies ist das Ende dieses Artikels über die Implementierung einer baumförmigen Sekundärtabelle basierend auf Angular. Weitere relevante Inhalte zu baumförmigen Sekundärtabellen von Angular finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • AngularJS implementiert eine Tabelle, Tabelle, TD-Zelle, klicken Sie, um das Eingabefeld/den editierbaren Status zu ändern, Beispiel
  • Implementierungscode der AngularJS-Fuzzy-Abfragefunktion (Dropdown-Menüinhalt filtern, Sortierung, Überprüfung, Beurteilung sensibler Zeichen und Hinzufügen von Tabelleninformationen)
  • Beispiele für grundlegende Tabellenoperationen in AngularJS
  • Detaillierte Erläuterung der Angular Table Artifact-UI-Grid-Anwendung
  • Angular rendert die im Formular eingetragenen Daten in einer Tabelle
  • AngularJS implementiert das Hinzufügen, Löschen, Ändern und Abfragen von Tabellen (nur Front-End)

<<:  Eine kurze Diskussion über den Vergleich von varchar, char und text in der PostgreSQL-Datenbank

>>:  Komprimierungs- und Optimierungsvorgänge für Docker-Images

Artikel empfehlen

So legen Sie eine feste IP-Adresse in einer virtuellen CentOS7-Maschine fest

Da meine Entwicklungsumgebung darin besteht, Cent...

Fügen Sie Linux eine Startmethode hinzu (Dienst/Skript)

Konfigurationsdatei, die beim Systemstart geladen...

Grundlegendes zu MySQL-Clusterindizes und wie Clusterindizes wachsen

In dieser Anmerkung beschreiben wir kurz Was ist ...

So isolieren Sie Benutzer in Docker-Containern

Im vorherigen Artikel „UID und GID in Docker-Cont...

Ausführliche Erklärung zu Sitzung und Cookie in Tomcat

Vorwort HTTP ist ein zustandsloses Kommunikations...

Detaillierte Schritte zur Installation und Konfiguration von MySQL 5.7

1. MySQL herunterladen 1. Melden Sie sich auf der...

Mehrere Möglichkeiten zum Verbinden von Tabellen in MySQL

Die Verbindungsmethode in der MySQL-Tabelle ist e...

Vue implementiert den Anwesenheitskalender von DingTalk

In diesem Artikel wird der spezifische Code von V...

Vue implementiert Fuzzy-Abfrage-MySQL-Datenbankdaten

Inhaltsverzeichnis 1. Nachfrage 2. Umsetzung 3. E...

Installieren Sie das komprimierte MySQL5.7-Paket schnell unter Windows

In diesem Artikel erfahren Sie, wie Sie das kompr...

So installieren Sie Git unter Linux

1. Einleitung Git ist ein kostenloses, verteiltes...

Detaillierte Erklärung der Mencached-Cache-Konfiguration basierend auf Nginx

Einführung Memcached ist ein verteiltes Caching-S...

Eine kurze Diskussion über die Fallstricke der React UseEffect-Abschließung

Problemcode Schauen Sie sich den Code eines durch...