Was ist eigentlich @NgModule in eckige?
Ich bin neu Winkel 2.
Was ist eigentlich @NgModule
im Winkel 2 ? Ich bezog mich durch die offiziellen docs von den eckigen. Aber ich hatte keine Klarheit.
Kann mir jemand helfen ?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Als Anwendungen gestartet zu werden mehr und mehr Komplex, es wurde ersichtlich, dass in allen Anwendungen aufgeteilt werden sollte in
modules
. Jedes Modul ist eine kleine mini-Applikation auf Ihrer eigenen, aber jetzt bündeln Sie alle diese mini-Anwendungen, um Ihren größeren Anwendung.Kantige Antwort auf die Erstellung von Modulen ist
@NgModule
. Dies ist der tag, können Sie ein Modul erstellen. Ein Modul in eckigen besteht auscomponents
oderother module's components
zusammen mit anderen Sachen, dass wir nicht darüber reden.Also lasst uns sagen, Ihr Antrag hat zwei große Abschnitte - Wunschzettel und Warenkorb. Können Sie erstellen Module für jeden von Ihnen -
WishlistModule
undCartModule
. In WishlistModule haben Sie verschiedene Komponenten (dekoriert wie @NgComponent) wie die Anzeige von Elementen, ziehen und ablegen von Elementen, etc. Ebenso für CartModule.Module erstellen, müssen Sie
@NgModule
wie unten.Anderen Antworten haben schon darauf hingewiesen,
@NgModule
hat eine Menge hinter den kulissen, aber in einfachen Worten, es erklärt ein Modul. Es ist fast so etwas wie eine Java-Klasse, und das, was Ihr pass in diebootstrap
option ist wie die main () - Methode.Einem Modul (oder @NgModule) selbst nichts ist, sondern nur eine Aktentasche mit einer Reihe von
components
, und wirklich, die Komponenten sind, was eigentlich Ihre Anwendung aus. Eine Komponente definiert ein tag z.B.<wishlist></wishlist>
wo eckige bringt alle Eure Wunschzettel code. Das Modul wird einfach unter dem die Komponente Leben, und wenn Sie möchten, verwenden Sie eine externe Komponente, dann können Sie dies nur tun, durch den Import Modul, genau wie Java Klassen und Methoden.@NgModule ist eine neue decorator Hinzugefügt RC5, die bieten eine Reihe von nützlichen Funktionen für die beiden Eckigen Kern und Entwickler Ergonomie.
Basic NgModule Nutzung sieht wie folgt aus:
Dieser Dekorator erzählt Winkel-zwei wichtige Dinge über Ihre Bewerbung:
Erklärungen sagen, angular, dass
MyComponent
gehört zu denMyAppModule
bootstrap berät Winkel, dass, wenn Sie es schafft dieses Modul beim starten, wollen wir automatisch bootstrap
MyComponent
in die DOM.Zuerst von allen, haben ein anderes Lesen von https://angular.io/docs/ts/latest/guide/ngmodule.html und definitiv https://angular.io/docs/ts/latest/cookbook/ngmodule-faq.html als gut.
Einer @NgModule nicht alle die Magie-setup. Es setzt das dependency-injection, zieht in jedem 3rd-party-Module, die Sie verwendet, deklariert alle Komponenten/Richtlinien/Rohre/etc. , die verwendet werden, innerhalb des Moduls, stellt einige dieser Komponenten etc. zu anderen Modulen, stellt den Arbeitsplan für das Modul, und setzt, bis keine "boostrap" - Komponenten, die verwendet werden können, wie die root-Komponente.
Es gibt zwei Typen von Modulen. Erstens, es ist deine 'Stamm-Modul', das ist der Einstiegspunkt der app. Sie können technisch alles in Ihrer app in gerade einem Modul.
Dann gibt es 'Feature-Module', die verwendet werden, für die Trennung von Bedenken, die während der Entwicklung, aber auch für Dinge wie lazy-loading von teilen der app. Dies ist eher ein Problem für größere Anwendungen, aber es tut es schon früh kann sicherlich helfen Sie set-up "rechts".
Winkel NgModules unterscheiden und diese ergänzen JavaScript (ES2015) Module. Ein NgModule erklärt eine Zusammenstellung Kontext für eine Reihe von Komponenten, die speziell auf eine Anwendungsdomäne, einen workflow oder eine eng Verwandte Gruppe von Funktionen. Ein NgModule zuordnen können seine Komponenten mit den zugehörigen code, wie Dienstleistungen, bilden funktionale Einheiten.
Einer NgModule ist durch eine Klasse definiert verziert mit @NgModule(). Die @NgModule() decorator ist eine Funktion, die eine einzelne Metadaten-Objekt, dessen Eigenschaften die das Modul beschreiben. Die wichtigsten Eigenschaften sind wie folgt.
Erklärungen: Die Komponenten, Richtlinien, und Rohre, die gehören zu dieser NgModule.
Exporte: Die Teilmenge der Meldungen, die sollen sichtbar und nutzbar in der Komponente, die Vorlagen der anderen NgModules.
Importe: Andere Module exportiert, deren Klassen werden benötigt, die von component templates deklariert, die in dieser NgModule.
Anbieter: Schöpfer von Dienstleistungen, dass diese NgModule trägt zur globalen Sammlung von Diensten; Sie werden zugänglich in allen teilen der app. (Sie können auch angeben, Anbieter auf der Ebene der Komponenten, die oft bevorzugt.)
bootstrap: Der Haupt-Anwendung anzuzeigen, genannt Wurzel-Komponente, die die Gastgeber für alle anderen app-Ansichten. Nur der root-NgModule sollte der bootstrap-Eigenschaft.
Aus der
docs