2017-01-11 14 views
1

私は、そのテンプレートにいくつかのネストされたコンポーネントを使用するコンポーネントを持っています。これらのコンポーネントは、親コンポーネントの子として動作するように特別に設計されています。テーブルの典型的な抽象化です。すべてのコンポーネントをngModuleに登録する必要がありますか?

親コンポーネントは、依存するネストされたコンポーネントの種類を知らなくても使用できます。残念ながら、私はこれを達成することができませんでしたので、すべてのコンポーネントを@NgModule.declarations配列に登録する必要があります。

親コンポーネントを登録するだけで、入れ子になったコンポーネントが依存関係としてロードされますか?

+1

まあ、私はあなたが同じコンポーネントファイル内のモジュールを作成し、その依存関係を宣言することができますね。 primengリポジトリのコンポーネントを見てください。https://github.com/primefaces/primeng/tree/master/components –

答えて

0

によって別のモジュールのロードコンポーネントをzalyでき怠惰なロード・モジュールとそのコンポーネント

です。

直接の子コンポーネントを宣言するか、子モジュールをインポートする親モジュールを作成し、この親モジュールをメインモジュールにインポートすることができます。 EXのために

NgModule({ 
    declarations: [ 
    AppComponent, 
    ], 
    imports: [ 
    BrowserModule, 
    FormsModule, 
    HttpModule, 
    AccountModule, // <---- module for account 
    MainModule, // <---- module for main 
    DirectivesModule, 
    ], 
    providers, 
    bootstrap: [AppComponent] 
}) 
export class AppModule { } 


@NgModule({ 
    imports: [ 
    FormsModule , 
    DirectivesModule 
    ], 
    declarations: [ 
    LoginComponent, 
    SignupComponent, 
    SettingsComponent 
    ] 
}) 
export class AccountModule { }; // Account module 


@NgModule({ 
    imports: [ 
    FormsModule , 
    DirectivesModule 
    ], 
    declarations: [ 
    DashboardComponent, 
    PageOneComponent, 
    ] 
}) 
export class MaintModule { }; // Main module 
+0

完璧に動作します!ありがとう! – Leonard

0

あなたは、コンテナモジュールでそれらを追加することなく、あなたのコンポーネントを失望することができます多くの方法があります。そのうちの一つは、あなたが、私はそう思い

{ 
    path: 'routerpath', 
    loadChildren: 'modulecode#NamedModule' 
    } 
関連する問題