2016-11-22 3 views
3

Ich entwickle eine große Anwendung mit Angular JS 2.0 und ASP.net MVC. Ich habe etwa 120 Komponenten in meiner Anwendung, die alle in @ngModule Erklärungen Block deklariert werden:Deklarieren mehrerer Komponenten in @ngModule Angular 2

@NgModule({ 
    imports: [CommonModule], 
    declarations: [Component1, Component2, Component3, ..., Component120] 
}) 

Gibt es einen Mechanismus, wo ich diese verkürzen kann?

+0

Aufteilung Ihrer Anwendung auf kleinere kleinere 'Modul/submodule', denken so, dass jedes Modul nicht mehr als' 10-15' Komponenten haben sollte, kann die Sie NgModule für jeden 'submodule' erstellen & Last sie träge über Router-Funktion (dies kann auch die Anwendungsleistung steigern). –

Antwort

2

Sie können ein freigegebenes Modul erstellen und die Komponenten zu diesem Modul hinzufügen, dann müssen Sie nur das freigegebene Modul zu imports: [MySharedModule] hinzufügen, und alle Komponenten und Anweisungen, die von MySharedModule exportiert wurden, werden für das importierende Modul verfügbar.

@NgModule({ 
    imports: [ CommonModule ], 
    declarations: [ Component1, Component2, Component3....  Component120 
], 
    imports: [ CommonModule ], 
    exports: [ Component1, Component2, Component3....  Component120 ], 
}) 
class MySharedModule {} 

@NgModule({ 
    declarations: [AppComponent], 
    bootstrap: [AppComponent], 
    imports: [BrowserModule, MySharedModule] 
}) 
class AppModule {} 
+0

danke für den Vorschlag, wird auf diese Weise implementieren. – shabari

+0

danke nochmal, es funktioniert für mich :) – shabari

0

Ich fürchte, es gibt keinen kürzeren Weg zu erreichen, was Sie versuchen zu tun.

Aber wenn es möglich ist, können Sie Ihre Anwendung in mehrere Teile aufteilen. Dies bedeutet, dass Sie mehr als eine app.module.ts haben.

Verwandte Themen