Angular使用自定义管道

Joh*_*bes 7 angular2-pipe angular

我很乐意帮助将内置管道导入角度为2的自定义管道.

这是我的代码:

@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';
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误:

EXCEPTION:未捕获(承诺):错误:没有DecimalPipe的提供者!

在组件中导入常规自定义管道时,我使用:

@Component({
  ...,
  pipes: [MyCustomPipe],
  ...
})
Run Code Online (Sandbox Code Playgroud)

Gün*_*uer 14

为此,您需要在DecimalPipe某处添加到提供程序

例如

@NgModule({
  providers: [DecimalPipe],
  ...
})
export class AppModule {}
Run Code Online (Sandbox Code Playgroud)

您还可以将其添加到providers组件(您使用管道的组件或祖先组件).