2016-09-29 10 views
5

パイプを親モジュールに宣言し、子モジュールで使用したいとします。子モジュール内の同じパイプコンポーネント宣言の問題

@NgModule({ 
    // Pipe which I want to declare in all child modules 
    declarations: [ ThisIsPipe ], 
    imports: [ ChildModuleOne, ChildModuleTwo], 
}) 

この子モジュールはどのように使用できますか?私は二度それを宣言した場合

はので、私はあなたがパイプを配置し、あなたがそのパイプを使用したいというモジュールをインポートする別のモジュールを作成する必要があり、エラー

Uncaught Error: Type ThisIsPipe is part of the declarations of 2 modules: ChildModuleOne and ChildModuleTwo! Please consider moving ThisIsPipe to a higher module that imports ChildModuleOne and ChildModuleTwo. You can also create a new NgModule that exports and includes ThisIsPipe then imports that NgModule in ChildModuleOne and ChildModuleTwo.

答えて

6

を得ました。

1つのディレクティブ、コンポーネント、またはパイプは常に1つのNgModuleにのみ属しますが、このNgModuleは必要な数のモジュールにインポートできます。

+0

の例を探す子モジュールから両親の宣言を使用することが可能ですか? –

+0

いいえ、宣言を使用するすべてのモジュールを直接インポートする必要があります。いくつかの再利用可能なコンポーネント、ディレクティブおよびパイプを一緒にNgModuleに入れることができます。他のNgModule(B、C、D)をエクスポートするNgModule(A)を作成して、現在のモジュールのインポートにAを追加するだけでB、C、Dをインポートすることもできます。 –