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

Quickjs kapselt JavaScript-Sandbox-Details

Inhaltsverzeichnis 1. Szenario 2. Vereinfachen Si...

Zabbix überwacht die MySQL-Instanzmethode

1. Überwachungsplanung Bevor Sie ein Überwachungs...

Beispiel für einen reinen CSS3-Mindmap-Stil

Mindmap Er sieht wahrscheinlich so aus: Die meist...

CSS3-Eigenschaft line-clamp steuert die Verwendung von Textzeilen

Beschreibung: Begrenzen Sie die Anzahl der Textze...

Docker-Container vom Einstieg bis zur Obsession (empfohlen)

1. Was ist Docker? Jeder kennt virtuelle Maschine...

Vor- und Nachteile des Tabellenlayouts und warum es nicht empfohlen wird

Nachteile von Tabellen 1. Tabellen nehmen mehr Byt...

Detaillierte Beispiele zur Ajax-Verwendung in js und jQuery

Inhaltsverzeichnis Natives JS So senden Sie eine ...

Erste Schritte Tutorial für Anfänger: Domänennamenauflösung und Bindung

Wie können Sie also nach der Registrierung eines ...

Beispielcode für HTML-Formularkomponente

HTML-Formulare werden verwendet, um verschiedene ...

Tutorial zur Tomcat-Konfiguration für Nginx/Httpd-Lastausgleich

Im vorherigen Blog haben wir über die Verwendung ...