8

I would be glad to get some help importing a build-in pipe to a custom one in angular 2.

This is my code :

@Pipe({ name: 'tablePipe' })

export class TablePipe implements PipeTransform {
    constructor(private decimalPipe: DecimalPipe) {

    }
    transform(field: any, format: Format, formatArg: string): any {
        let formattedField: any = ''
        switch (format) {
            case 'number':
                {
                    formattedField = this.decimalPipe.transform(field, formatArg);
                    break;
                }
        }
        return formattedField;
    }
}

export type Format = 'date' | 'string' | 'number';

and this is the error i got:

EXCEPTION: Uncaught (in promise): Error: No provider for DecimalPipe!

When importing regular custom pipes in components, i am using :

@Component({
  ...,
  pipes: [MyCustomPipe],
  ...
})
Aniruddha Das
  • 20,520
  • 23
  • 96
  • 132
John Libes
  • 363
  • 3
  • 11

1 Answers1

16

For this to work you need to add DecimalPipe to providers somewhere

For example

@NgModule({
  providers: [DecimalPipe],
  ...
})
export class AppModule {}

You can also add it to providers of a component (either the one where you 're using the pipe, or an ancestor component.

Günter Zöchbauer
  • 623,577
  • 216
  • 2,003
  • 1,567
  • 1
    Glad to hear :) Please consider accepting my answer to indicate your problem is solved (clicking the white check mark below the up-down-vote button - thanks. – Günter Zöchbauer Mar 27 '17 at 15:18