2016-08-31 12 views
1

通常のコンポーネントMyComponentがあるとします。それを使用するには、メインモジュールのdeclarationsアレイまたはメインコンポーネントのdirectivesアレイに渡す必要がありますか?コンポーネントを宣言またはディレクティブに渡す違いは何ですか?

// 1) 
@NgModule({ 
    declarations: [ 
    AppComponent, 
    MyComponent 
    ], 
    imports: [], 
    providers: [], 
    bootstrap: [AppComponent] 
}) 

// 2) 
@Component({ 
    selector: 'app-root', 
    directives: [MyComponent] 
}) 
export class AppComponent { } 

コンポーネントがアプリケーションツリーに深くある場合declarations配列に渡された場合、私は、メインモジュールの任意の場所に何を使うだろうか?

[email protected]

+0

コンポーネントがアプリケーションツリーの深いところにある場合、コードを宣言のプライベートスコープを持つ機能モジュールに分割し、これらのモジュールをメインモジュールhttps://angular.io/docs/ts/latest/guide/にインポートできますngmodule.html#!#feature-modules – yurzui

+0

@yurzuiはい、私はそれをするつもりですが、1つのことが私を悩ましています。共有サービスの作成方法なぜなら、それらをメインモジュールの 'providers'配列に渡すと、私の子モジュールには利用できないからです。 – Eggy

答えて

3

directivespipes@Component()内と@Directive()は推奨されません。 declarationsは新しいRC.5/NgModuleの方法です。