2016-11-22 74 views
0

我們正在使用angular2和角度cli,並且我們的應用程序變得相當大,並且在app.module.ts文件中有大量declarations:Angular2 - 組和有選擇地添加模塊聲明

@NgModule({ 
    declarations: [ 
    GameComponent1, 
    GameComponent2, 
    GameComponent3, 
    StatsComponent1, 
    StatsComponent2, 
    StatsComponent3, 
    AboutPageComponent1, 
    AboutPageComponent2, 
    AboutPageComponent3, 
    AboutPageComponent4, 
    ],... 

首先,有一種方法將相關組件聲明如下所示:

@NgModule({ 
    declarations: [ 
    GameComponentsGroup, 
    StatsComponentsGroup, 
    AboutPageComponentsGroup, 
    ],... 

然後,它可以是能夠選擇性地從被包括在構建和關閉組件切換,針對不同的環境。

if(environment.envName == "developmentWithStats") 
    appmodule add StatsComponentsGroup 

目標是讓不同的功能包含在不同的版本中。

我知道我錯過了這裏的一些關鍵知識,任何幫助將不勝感激。

回答

2

首先,有沒有辦法將相關的組件聲明如下所示:

你可以將它們組合成不同的模塊

@NgModule({ 
    declarations: [ Game1Component, Game2Component ], 
    exports: [ Game1Component, Game2Component ] 
}) 
class GameModule {} 

@NgModule({ 
    imports: [ GameModule ] 
}) 
class ModuleThatUsesGameModule {} 

然後難道可以選擇性地打開和關閉構件中包含的組件,以適應不同的環境。

你可以做類似

const declarations = [ 
    CoreComponent 
]; 

if(environment.envName == "developmentWithStats") { 
    declarations.push(SomeComponent); 
} 

@NgModule({ 
    declarations: declarations 
}) 
+0

哇,這正是我需要的!感謝您的時間來回答這個問題 –