Angular2: custom pipe could not be found

This didnt worked for me. (Im with Angular 2.1.2). I had NOT to import MainPipeModule in app.module.ts and importe it instead in the module where the component Im using the pipe is imported too.

Looks like if your component is declared and imported in a different module, you need to include your PipeModule in that module too.


see this is working for me.

ActStatus.pipe.ts First this is my pipe

    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
        }
      }
    }

main-pipe.module.ts in pipe module, i need to declare my pipe/s and export it.

    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 user this pipe module in any module.

    @NgModule({
      declarations: [...],
      imports: [..., MainPipe], // <---
      providers: [...],
      bootstrap: [AppComponent]
    })

you can directly user pipe in this module. but if you feel that your pipe is used with in more than one component i suggest you to follow my approach.

  1. create pipe .
  2. create separate module and declare and export one or more pipe.
  3. user that pipe module.

How to use pipe totally depends on your project complexity and requirement. you might have just one pipe which used only once in the whole project. in that case you can directly use it without creating a pipe/s module (module approach).