2016-11-07 13 views
19

内蔵のパイプが仕事ですが、私が使用したいすべてのカスタムパイプが同じエラーですが見つかりませんでしたモジュールの宣言::</p> ​​ <p>私は二つの方法を試してみました、アプリでそれを宣言します。カスタムパイプは

app.module.ts:

import {ActStatusPipe} from '../pipe/actPipe' 

@NgModule({ 
    declarations: [ 
     AppComponent, 
     HomePage, 
     ActivitiesList, 
     ActStatusPipe 
    ], 
    ... 
}) 

またはすべての私のパイプを宣言し、エクスポートするために、他のモジュールを使用://パイプ

import {ActStatusPipe} from "./actPipe" 

@NgModule({ 
    declarations:[ActStatusPipe], 
    imports:[CommonModule], 
    exports:[ActStatusPipe] 
}) 

export class MainPipe{} 

とapp.moduleにインポートします。

//pipe 
import {MainPipe} from '../pipe/pipe.module' 

@NgModule({ 
    declarations:[...], 
    imports:[...,MainPipe], 
}) 

しかし、私のアプリでは動作しません。ここで

は、パイプの私のコードです:

import {Pipe,PipeTransform} from "@angular/core"; 

@Pipe({ 
    name:'actStatusPipe' 
}) 
export class ActStatusPipe implements PipeTransform{ 
    transform(status:any):any{ 
     switch (status) { 
      case 1: 
       return "UN_PUBLISH"; 
      case 2: 
       return "PUBLISH"; 
      default: 
       return status 
     } 
    } 
} 

私はそれが

(実際には、私はちょうど文書からコピーし、少しの修正を行っている)文書と同じのほとんどだと思います

そして、私のangular2のバージョンは2.1です。

私のアプリでstackoverflowとgoogleで検索できる解決策はたくさんありますが、うまくいかないのです。

これは私に多くの混乱、あなたの答えに感謝!

+0

プランナーで再現できますか? – yurzui

+0

あなたのコードにも混乱がたくさんあります。最初に、カスタムパイプを作成し、NgModule()の[AppComponent、CapitalizePipe]配列を宣言で追加することを簡単にしてください。それが働いていることを私に知らせるよりも?私は仕事 –

+0

@yurzuiが@VinayPandyaエラーメッセージは以下の通りです: テンプレートの解析エラー: パイプ「actStatusPipe」 – rui

答えて

22

これは私のために働いてください参照してください。

ActStatus.pipe.ts

import {Pipe,PipeTransform} from "@angular/core"; 

@Pipe({ 
    name:'actStatusPipe' 
}) 
export class ActStatusPipe implements PipeTransform{ 
    transform(status:any):any{ 
    switch (status) { 
     case 1: 
     return "UN_PUBLISH"; 
     case 2: 
     return "PUBLISH"; 
     default: 
     return status 
    } 
    } 
} 

主pipe.module.ts

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

import {ActStatusPipe} from "./ActStatusPipe.pipe"; 

@NgModule({ 
    declarations:[ActStatusPipe], 
    imports:[CommonModule], 
    exports:[ActStatusPipe] 
}) 

export class MainPipe{} 

app.module.ts

@NgModule({ 
    declarations: [...], 
    imports: [..., MainPipe], 
    providers: [...], 
    bootstrap: [AppComponent] 
}) 
+2

最後に、私はそれがルートモジュールでパイプをインポートし、他のmodule.Iのコンポーネントインポートでそれを使用するので、それが前にグローバルに動作し、バグがパイプによって引き起こされると思うからです。 あなたの答えは、私があなたの助けを借りて、これを見つけることを鼓舞します! plzより – rui

+0

は私の答えをマークします。 –

+0

@ruiあなたのコメントは私の日を救った..私も同じ問題を抱えていた.. haha​​ha –

9

このディdntは私のために働いた。 (角度2.1.2のIm)。私は、MainPipeModuleをapp.module.tsにインポートせず、代わりにパイプを使用するコンポーネントImがインポートされるモジュールでimporteしなければなりませんでした。

コンポーネントが宣言されて別のモジュールにインポートされているように見える場合は、そのモジュールにPipeModuleも含める必要があります。

+0

何?それは意味をなさない。このような世界的な輸入はないのですか? – Phil

関連する問題

 関連する問題