2016-08-18 1 views
0

Ich habe gerade auf eckige RC5 und rot aktualisiert diesen Artikel über @NgModules.
https://angularjs.blogspot.de/2016/08/angular-2-rc5-ngmodules-lazy-loading.htmlKoppelt @NgModules, indem auf der Stammebene Anweisungen, Dienste usw. deklariert werden?

Mit @NgModules die Komponenten, Richtlinien, Dienstleistungen usw. auf den Modulen Root-Ebene erklärt bekommen. Ich dachte darüber nach: Versuchen wir nicht, die Gedanken zu entkoppeln, und versuchen wir nicht, Bauteile zu archivieren, die selbst für sie verwendet werden könnten?

Was ist, wenn ich jetzt eine Komponente zum Beispiel "NoteCard" habe, die in einer "Container" -Komponente "Notes" verwendet wird.

aGuitar:

import {Component} from "@angular/core"; 

@Component({ 
    selector: 'note-card', 
    styleUrls: ['app/ui/note-card/note-card.css'], 
    templateUrl: 'app/ui/note-card/note-card.html' 
}) 
export class NoteCard {} 

Hinweise:

import {Component} from "@angular/core"; 
import {NoteCard, NoteCreator} from "../../ui"; 
import {NotesService} from "../../services"; 

@Component({ 
    selector: 'notes-container', 
    directives: [ 
     NoteCard 
    ], 
    styleUrls: ['app/containers/notes/notes.css'], 
    templateUrl: 'app/containers/notes/notes.html' 
}) 
export class Notes {} 

In RC4 würden wir nur injizieren "aGuitar" in "Notes". Damit könnten wir "NoteCard" selbst verwenden (natürlich hat es keine Abhängigkeiten) und "Notizen" in Kombination mit "NoteCard", weil es eine eigene Abhängigkeit ist.

Mit RC5 muss ich "NoteCard" in die Root-Ebene @NgModule injizieren. Damit benötige ich immer ein extra Level und wenn es komplexer wird, kann es mehrere Level darüber sein, wo die Abhängigkeiten injiziert werden.

Macht es Sinn mehr als einen @NgModule in einem Projekt zu verwenden? In meinem Fall sollte jede "Container" -Komponente eine @NgModule sein?

Antwort

1

Sicher ist es sinnvoll, mehrere Module zu haben! Ansonsten nutzen Sie nicht die Vorteile dieser neuen Funktion.

Bitte lesen Sie diesen Artikel: https://angular.io/docs/ts/latest/guide/ngmodule.html

Es ist ziemlich lang, ja .. aber es gibt viele Beispiele, Code-Schnipsel und plunkers.

In dieser Live-Demo sehen Sie die verschiedenen Module und manchmal gibt es nur eine Komponente im Inneren, manchmal gibt es mehr. Und Sie entscheiden, welche Komponenten außerhalb Ihres Moduls sichtbar (exportiert) sind.

+0

Großartig, danke! Ich wusste nichts über diesen Artikel. – Yves

+0

Da es überall verwendet wird dachte ich, ich könnte es in das Hauptapp.Modul einfügen. Ich hatte bereits ein gemeinsames Modul, also habe ich es einfach eingefügt, wie du es vorgeschlagen hast. –

Verwandte Themen