Detaillierte Erläuterung der Implementierung gemeinsam genutzter Module in Angular-Projekten

Detaillierte Erläuterung der Implementierung gemeinsam genutzter Module in Angular-Projekten

1. Gemeinsam genutztes CommonModule

Erstellen Sie ein Freigabemodell: ng gm share

Alle Module, die freigegeben werden müssen, werden nach dem Import exportiert.

Im Moment gibt es nur CommonModule, und es wird in Zukunft einige Komponenten geben, die gemeinsam genutzt werden müssen.

importiere { NgModule } von '@angular/core';
importiere { CommonModule } von '@angular/common';

@NgModule({
  Importe: [
    Gemeinsames Modul
  ],
  Exporte:
    Gemeinsames Modul
  ],
  Erklärungen: []
})
exportiere Klasse SharedModule { }

Importieren Sie das Kernmodul in das App-Modul.

importiere { BrowserModul } von '@angular/platform-browser';
importiere { NgModule } von '@angular/core';

importiere { AppComponent } aus './app.component';
importiere {CoreModule} aus „./core/core.module“;

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

2. Gemeinsam genutztes Materialmodul

Zur einfacheren Verwaltung platzieren Sie den Import und Export von Materialkomponenten in einem separaten Modul und importieren und exportieren Sie sie in ShareModule.

importiere { NgModule } von '@angular/core';
importiere { CommonModule } von '@angular/common';
importiere { MatToolbarModule, MatSidenavModule, MatButtonModule, MatCardModule, MatInputModule, MatListModule, MatSlideToggleModule, MatGridListModule, MatDialogModule, MatAutocompleteModule, MatMenuModule, MatCheckboxModule, MatTooltipModule, MatDatepickerModule, MatRadioModule, MatNativeDateModule, MatSelectModule } aus '@angular/material';
importiere { MatIconModule } aus '@angular/material';

const Modul=[
  MatSidenavModule,
  MatIconModul,
  MatToolbarModule,
  MatIconModul,
  MatButtonModul,
  MatCardModul,
  MatInputModule,
  MatListModule,
  MatSlideToggleModule,
  MatGridListModule,
  MatDialogModul,
  MatAutocompleteModul,
  MatMenuModule,
  MatCheckboxModule,
  MatTooltipModul,
  MatDatepickerModul,
  MatRadioModule,
  MatNativeDateModule,
  MatSelectModule
];

@NgModule({
  Deklarationen: [],
  Importe: [
    Modul
  ],
  Exporte:
    Modul
  ]
})
exportiere Klasse MaterialModul { }
importiere { NgModule } von '@angular/core';
importiere { CommonModule } von '@angular/common';
importiere { MaterialModul } aus '../material/material.module';
importiere { ConfirmDialogComponent } aus './confirm-dialog/confirm-dialog.component';

@NgModule({
  Importe: [
    Gemeinsames Modul,
    MaterialModul
  ],
  Exporte:
    Gemeinsames Modul,
    MaterialModul
  ],
  Deklarationen: [ConfirmDialogComponent]
})
exportiere Klasse SharedModule { }

3. Gemeinsamer ConfirmDialog

Das Bestätigungsdialogfeld wird verwendet, unabhängig davon, ob Sie eine Aufgabe oder ein Projekt löschen, und wird daher im SharedModule platziert.

$ ng gc gemeinsam genutzter/Bestätigungsdialog

Sie können auch eine Inline-Vorlage und einen Stil mit ng gc shared/confirm-dialog -it -is erstellen.

<form>
  <h2 md-dialog-title>{{title}}</h2>
  <div mat-dialog-inhalt>
    {{Inhalt}}
  </div>
  <div mat-dialog-aktionen>
    <button type="button" mat-raised-button color="primary" (click)="onClick(true)">OK</button>
    <button type="button" mat-button mat-dialog-close (click)="onClick(false)">Abbrechen</button>
  </div>
</form>
importiere { Komponente, OnInit, Inject } von "@angular/core";
importiere { MatDialogRef } von "@angular/material";
importiere { MAT_DIALOG_DATA } aus "@angular/material";

@Komponente({
  Selektor: "App-Bestätigungsdialog",
  Vorlagen-URL: "./confirm-dialog.component.html",
  styleUrls: ["./confirm-dialog.component.scss"]
})
Exportklasse ConfirmDialogComponent implementiert OnInit {
  Titel = "";
  Inhalt = "";
  Konstruktor(
    private DialogRef: MatDialogRef<ConfirmDialogComponent>,
    @Inject(MAT_DIALOG_DATA) private Daten
  ) { }

  ngOnInit() {
    dieser.Titel = dieser.Daten.Titel;
    dieser.Inhalt = dieser.Daten.Inhalt;
  }
  beiKlick(Ergebnis: Boolesch) {
    this.dialogRef.close(Ergebnis);
  }
}

Fügen Sie dann die Komponente „ConfirmDialogComponent“ in „sharedModule“ ein.

importiere { NgModule } von "@angular/core";
importiere { CommonModule } von "@angular/common";
importiere { MaterialModul } aus "../material/material.module";
importiere { ConfirmDialogComponent } aus "./confirm-dialog/confirm-dialog.component";

@NgModule({
  Importe: [GemeinsamesModul, MaterialModul],
  Exporte: [GemeinsamesModul, MaterialModul],
  Deklarationen: [ConfirmDialogComponent],
  Eintragskomponenten: [ConfirmDialogComponent]
})
exportiere Klasse SharedModule { }

Wenn Sie ConfirmDialog verwenden, lesen Sie Löschen eines Projekts.

Oben finden Sie eine ausführliche Erläuterung der Implementierung gemeinsam genutzter Module in Angular-Projekten. Weitere Informationen zu Angular finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM!

Das könnte Sie auch interessieren:
  • Detaillierte Erläuterung der Angular2-Module und gemeinsam genutzten Module
  • Detaillierte Erläuterung der Angular-Strukturdirektivenmodule und -Stile
  • Angular-Build-Prozess für Multimodulprojekte
  • Spezifische Verwendung des Angular2 NgModel-Moduls
  • Beispiel für die Implementierung des Vorladens verzögerter Module durch Angular
  • Detaillierte Erklärung zum Lazy Loading von Angular-Modulen mittels Routing
  • Eine kurze Erläuterung der Lazy-Loading-Methode von Angular2-Modulen

<<:  Zusammenfassung der Lastausgleichsmethoden von Nginx

>>:  Tutorial zur Oracle-Bereitstellung in einer Linux-Umgebung

Artikel empfehlen

Installieren Sie CentOS 7 auf VMware14 – Grafik-Tutorial

Einführung in CentOS CentOS ist eine Linux-Distri...

Vue implementiert eine Countdown-Schaltfläche für den Bestätigungscode

In diesem Artikelbeispiel wird der spezifische Co...

So konvertieren Sie Zeilen in Spalten in MySQL

MySQL-Zeilen-zu-Spalten-Operation Die sogenannte ...

Lösen Sie schnell das Problem des langsamen Tomcat-Starts, super einfach

Heute habe ich einem Klassenkameraden geholfen, e...

js zum Hochladen von Bildern auf den Server

In diesem Artikelbeispiel wird der spezifische Co...

So verwenden Sie Docker Compose zum Erstellen eines FastDFS-Dateiservers

Im vorherigen Artikel wurde ein ausführliches Bei...

Einführung in integrierte JavaScript-Objekte

Inhaltsverzeichnis 1. Eingebaute Objekte 2. Mathe...

HTML löst das Problem ungültiger Tabellenbreiteneinstellungen

Wenn Sie den Stil „table-layer:fixed“ für eine Ta...

Verwenden von CSS3 zum Erstellen von Header-Animationseffekten

Die offizielle Website von Netease Kanyouxi (http...

Hinweise zu Fallstricken bei Vuex und Pinia in Vue3

Inhaltsverzeichnis einführen Installation und Ver...