Angular 使用自定义管道

Angular using pipe from custom one

我很乐意在 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';

这是我得到的错误:

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

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

@Component({
  ...,
  pipes: [MyCustomPipe],
  ...
})

为此,您需要将 DecimalPipe 添加到某处的提供商

例如

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

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