Verwenden Sie Angular CDK, um eine Service-Popup-Toast-Komponentenfunktion zu implementieren

Verwenden Sie Angular CDK, um eine Service-Popup-Toast-Komponentenfunktion zu implementieren

In Angular entwickelte das offizielle Team neben der Entwicklung der Materialkomponentenbibliothek auch ein Component Dev Kit, das berühmte CDK in der Angular-Welt. Dieses Toolkit bietet viele allgemeine Funktionen für die Front-End-Entwicklung. Fast alle bekannten Angular-Komponentenbibliotheken basieren auf diesem Entwicklungskit. Wie ANT, PrimeNG usw.

In diesem Artikel wird CDK hauptsächlich zur Implementierung einer einfachen Toast-Komponente verwendet, wobei das Overlay-Modul in CDK verwendet wird.

1. Umweltinstallation

cdk ist kein Standardmodul von Angular, Sie müssen es manuell installieren yarn add @angular/cdk

OverlayModule in cdk in app.module einführen

importiere { OverlayModule } von '@angular/cdk/overlay';

@NgModule({
  Erklärungen: [
    AppComponent
  ],
  Importe: [
    BrowserModule,
    OverlayModule
  ],
  Anbieter: [],
  Bootstrap: [Anwendungskomponente]
})
exportiere Klasse AppModule { }

2. Erstellen Sie Toast-Komponenten und ToastService

  • Verwenden Sie ng gc Toast um schnell eine Komponentenvorlage zu erstellen
  • Verwenden Sie ng gs Toast , um eine Servicevorlage zu erstellen

2.1 Schreiben Sie Toast-Komponenten und -Stile

ToastComponent

<div Klasse="q-toast">
    <div Klasse="q-toast-mask"></div>
    <p class="q-toast-msg">{{msg}}</p>
</div>

.q-toast {
  Polsterung: .2rem .5rem;
  Breite: 5rem;
  Position: relativ;
  Anzeige: Flex;
  Flex-Richtung: Reihe;
  Elemente ausrichten: zentrieren;
  Inhalt ausrichten: zentriert;
  

  .q-toast-maske {
    Position: absolut;
    oben: 0;
    links: 0;
    rechts: 0;
    unten: 0;
    Hintergrundfarbe: #000;
    Deckkraft: .8;
    Randradius: 2rem;
  }

  .q-toast-msg {
    Farbe: weiß;
    Z-Index: 999;
  }
}

ToastService

importiere { Overlay, OverlayConfig } von '@angular/cdk/overlay';
importiere { ComponentPortal } aus '@angular/cdk/portal';
importiere { Injectable, InjectionToken, Injector } von '@angular/core';
importiere { ToastComponent } aus './toast.component';

@Injizierbar({
  bereitgestelltIn: 'root'
})
Exportklasse ToastService {

  Konstruktor(privates Overlay: Overlay) { }

  Anzeigen(Nachricht: Zeichenfolge) {
    const config = neue OverlayConfig();
    const positionStrategy = this.overlay.position()
      .global().centerVertically().centerHorizontally();
    config.positionStrategy = Positionsstrategie;
    let overlayRef = this.overlay.create(config);
    const inject = Injektor.erstellen({
      Anbieter:
        {
          angeben: Toast_Ref,
          useValue:overlayRef
        },
        {
          geben Sie ein: Toast_Msg,
          Wert verwenden:msg
        }
      ]
    })
    Konsole.log(inject.get<string>(Toast_Ref))
    let partal = neues ComponentPortal(ToastComponent, null, inject);
    overlayRef.attach(teilweise)
    setzeTimeout(() => {
      overlayRef.detach()
      overlayRef.dispose();
    }, 2000);
  }

}

exportiere const Toast_Ref = neues InjectionToken<{}>('Toast_Ref');
exportiere const Toast_Msg = neues InjectionToken<{}>('Toast_Msg');

Toast verwenden

Nach dem Schreiben des Dienstes fügt Angular ihn standardmäßig in das Stammmodul ein. Sie müssen nur den entsprechenden ToastService in die Konstruktionsmethode der Komponente schreiben, in der Toast angezeigt werden muss, und er wird normal ausgeführt.

exportiere Klasse AppComponent {
  Konstruktor(privater Toast:ToastService) {
  }
  prüfen() {

    this.toast.Show('hallo cdk!')
  }
}

GIF-Effektbild

Dies ist das Ende dieses Artikels über die Verwendung von Angular CDK zur Implementierung einer Service-Popup-Toast-Komponente. Weitere Informationen zur Implementierung der Toast-Komponente durch Angular CDK finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Detaillierte Schritte zum Implementieren von Drag & Drop von Seitenelementen durch Angular CDK
  • Verwenden Sie das Angular-Materialthema, um das Farbschema Ihrer Komponentenbibliothek zu definieren
  • Angular6 entwickelt Schritteleistenkomponente
  • Angular 2 verwendet Routing, um das Toast-Operationsbeispiel der Popup-Komponente anzupassen
  • Angular2 verwendet SVG, um ein Beispiel für eine Diagrammkomponente (Balkendiagramm, Liniendiagramm) anzupassen
  • Beispiel für die Bedienung einer in Angular gekapselten Suchfeldkomponente

<<:  Lösung für Linux, das nicht alle Befehle unterstützt

>>:  Schritte zum Initialisieren des Passworts nach der ersten erfolgreichen Installation von MySQL

Artikel empfehlen

Analyse der Unfallursachen durch Unicode-Signatur BOM

Möglicherweise verwenden Sie hier Include-Dateien,...

Probleme bei der Verwendung der Rich-Text-Bearbeitung mit Wangeditor in Vue

wangEditor ist ein webbasierter Rich-Text-Editor,...

Detaillierte Erläuterung der allgemeinen Schritte zur SQL-Anweisungsoptimierung

Vorwort In diesem Artikel erfahren Sie hauptsächl...

Vollständiger Code zur Implementierung der Vue-Backtop-Komponente

Wirkung: Code: <Vorlage> <div Klasse=&qu...

Befehlscodebeispiele für die Installation und Konfiguration von Docker

Docker-Installation Installieren von Abhängigkeit...

Detaillierte Erklärung, wie eine SQL-Anweisung in MySQL ausgeführt wird

Überblick Ich habe vor Kurzem begonnen, mir Wisse...

Detaillierte Schritte zum Bereitstellen von lnmp unter Docker

Inhaltsverzeichnis Ziehen Sie ein CentOS-Image Ge...

So konvertieren Sie MySQL horizontal in vertikal und vertikal in horizontal

Daten initialisieren Tabelle löschen, wenn `test_...

So installieren Sie Babel mit NPM in VSCode

Vorwort Im vorherigen Artikel wurde die Installat...

MySql-Import - CSV-Datei oder tabulatorgetrennte Datei

Manchmal müssen wir Daten aus einer anderen Bibli...

Lösung - BASH: /HOME/JAVA/JDK1.8.0_221/BIN/JAVA: Unzureichende Berechtigungen

1) Geben Sie den Ordnerpfad ein, in dem die JDK-D...