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

Docker nginx implementiert einen Host zum Bereitstellen mehrerer Sites

Die virtuelle Maschine, die ich von einer bestimm...

Detaillierte Diskussion der InnoDB-Sperren (Record-, Gap-, Next-Key-Sperre)

Die Datensatzsperre sperrt einen einzelnen Indexd...

Spezifische Verwendung des Linux-gcc-Befehls

01. Befehlsübersicht Der Befehl gcc verwendet den...

Lösung für das Jitter-Problem beim CSS3-Transformationsübergang

transform: scale(); Skalierung verursacht Jitter ...

So ändern Sie die Kodierung in MySQL Version 5.7 unter Windows auf UTF-8

Vorwort Ich habe gerade angefangen, MySQL zu lern...

Tutorial zur Installation von VMware Workstation 14 Pro unter Ubuntu 16.04

In diesem Artikel wird die spezifische Methode zu...

Detaillierte Einführung in das MySQL-Schlüsselwort Distinct

Einführung in die Verwendung des MySQL-Schlüsselw...

Detaillierte Erklärung zur Konfiguration einer statischen IP in Centos8

Nach der Installation von CentOS 8 wird beim Neus...

MySQL-Speicherung räumlicher Daten und Funktionen

Inhaltsverzeichnis 1. Datentyp 1. Was sind MySQL-...

Analyse der geplanten Aufgaben und Ereignisplanungsbeispiele von MySQL

Dieser Artikel beschreibt anhand von Beispielen d...

17 hervorragende Webdesigns, sorgfältig von Startups entwickelt

Startups überraschen uns oft mit ihren unkonventi...