2016-11-01 4 views
2

2つのコンポーネントで使用されているパイプを持っていて、グローバルに共有する方法を知りたいですangle2には2つのコンポーネントで使用されているパイプがあり、それをグローバルに共有する方法を知りたいです

私はangular2とtypescriptを使用しています。

私のフィルタはfilterJobsパイプと呼ばれます。

グローバルな場所から両方のコンポーネントで使用できるように、filterJobsパイプを挿入するのが最適ですか?

これは、それを共有するためのフィルタのngModuleを作るのが私の現在の試みです:

import { NgModule } from '@angular/core'; 
import { CommonModule } from '@angular/common'; 

import { JobsFilter } from './jobsFilter'; 

@NgModule({ 
    imports: [CommonModule], 
    declarations: [JobsFilter], 
    exports: [JobsFilter], 
    providers: [] 
}) 
export class JobsFilterModule { } 

その後、私は単に がそれを必要とするコンポーネントに「JobsFilterModuleを」注入のですか?はいの場合、これはインポートセクションに入りますか?

答えて

3

あなたはdeclarations: []exports: []にパイプを入れモジュール@NgModule()class MyPipeModule {}を作成し、その後、あなたはそれを使用したい非常にモジュールのimports: []MyPipeModuleを追加します。
これにより、現在のモジュールのすべてのコンポーネントで、パイプやその他のコンポーネント、ディレクティブがexports: []に追加されます。

+0

を私はあなたがそれが正しいよう確認することができ、モジュールの作成時に上記の私のコードを追加しましたか? – AngularM

+0

素晴らしいですね。私はあなたが何を意味するのか分からない "それから、単にJobsFilterModuleをそれを必要とするコンポーネントに注入するのだろうか?パイプを注入する必要はありません。 'imports:[JobsFilterModule]'を '@NgModule()'に追加するだけです。 –

+0

コンポーネントモジュールを入力したJobsFilterModuleをインポートしました。次に、component.tsファイルのパイプ配列に追加する必要がありますか? – AngularM

2

コンポーネントが2つの異なるモジュール(M1、M2など)にある場合、M1とM2の両方がインポートする共有モジュールにパイプを宣言できます。あなたは、共有モジュールをインポートでしょう、あなたのコンポーネントのモジュールで

@NgModule({ 
    declarations: [ 
     FilterJobsPipe, 
     ... 
     ], 
    ... 
}) 
export class SharedModule {} 

@NgModule({ 
    imports: [ 
     SharedModule, 
     ... 
    ] 
... 
}) 
export class ModuleX {} 
関連する問題