2017-07-05 11 views
4

私のAngular 4プロジェクトにカスタムビルドパイプを使用しようとしています。コンパイラがコンポーネントテンプレートのパイプを認識しない理由を理解できません。角度4のテンプレート "パイプが見つかりませんでした"

QFormat管

@Pipe({ name: 'qFormat'}) 
export class QFormatPipe implements PipeTransform {...} 

SharedModule

@NgModule({ 
    declarations: [QFormatPipe], 
    exports: [QFormatPipe] 
}) 
export class SharedModule { } 

FeatureModule

@NgModule({ 
    imports: [SharedModule], 
    declarations: [MyComponent] 
}) 
export class FeatureModule{ } 

MyComponent.html

<div>{{someProp | qformat}}</div> 
        ^^^^^^^ 

は、テンプレートでエラーが発生します:

Angular: the pipe 'qformat' could not be found

私は何かが足りないのですか?

+0

すべてが正常に見える、あなたが再起動し、私はテンプレートにパイプ名をスペルミスしていた – Sajeetharan

+0

@Sajeetharanを参照してくださいでした。私は 'qFormat'のように大文字の' F'を使うべきでした – BeetleJuice

答えて

3

なぜパイプを見つけることができないのは、パイプを 'qFormat'として大文字のFで登録したためですが、HTMLでは 'qformat'に小文字のfがあるためです。このため、エラーが発生しています。あなたの共有モジュールの登録とインポート/エクスポートは完全にポイントです。 HTMLは次のとおりです。

<div>{{someProp | qFormat}}</div> 

うまくいけば助けてください!

1

鉱山は問題がCLIを通じて生成はapp.moduleの内側にパイプを追加されたということでしたが、私はで働いていた部品のモジュールだった私の場合はちょうど私の@NgModuleにそれを登録するには忘れ

1

と同じくらい簡単でした異なる。

ので、迅速な解決策は以下のとおりです。

Delete the pipe you've created (Don't forget to remove it from app.module.ts). Then create a folder like pipes: Then generate a module for it like 'ng g module pipes/pipes-common'

その後NGグラムパイプmyPipeExample`」のようなあなたのパイプを生成し、今それを

の宣言を追加することを忘れないでください:[myPipeExamplePipe]配列し、

輸出:[myPipeExamplePipe]アレイ

ここで、このモジュールを動作させたいモジュールの中にインポートします。

This question has multiple very helpful answers

関連する問題