How to use pipes in Component

前端 未结 3 1082
名媛妹妹
名媛妹妹 2020-12-09 16:20

I want to use the datePipe in my component. I followed the instructions here but I am met with

Error: StaticInjectorError[DatePipe]: 
StaticInjectorError[Da         


        
相关标签:
3条回答
  • 2020-12-09 16:43

    Add in the Module providers: [DatePipe],

    Add in the constructor private datePipe: DatePipe

    Add in Ts file for Form Array:

    const start_date = this.datePipe.transform(starttime, 'hh:mm a');
    const end_date = this.datePipe.transform(endtime, 'hh:mm a');
    this.Form.controls['starttime'].patchValue(start_date);
    this.Form.controls['endtime'].patchValue(end_date);
    
    0 讨论(0)
  • 2020-12-09 16:45

    Add to providers array in the component

    @Component({
        selector: 'app-root',
        templateUrl: '...',
        providers:[DatePipe]
    })
    

    or inject it to module

    @NgModule({
        providers:[DatePipe]       
    })
    

    or write a separate class extending the DatePipe and use it as a service

    @Injectable()
    export class CustomDatePipe extends DatePipe {
      transform(value, format) {
        return super.transform(value, format);
      }
    }
    

    and inject this to providers array

    @Component({
            selector: 'app-root',
            templateUrl: '...',
            providers:[CustomDatePipe]
        })
    
    0 讨论(0)
  • 2020-12-09 16:52

    Pipes, unlike Services, are not injectable. In order to use pipe in a component, you need to create new instance of it:

    ngOnInit() {
        console.log(new DatePipe().transform(this.currentDate, 'YYYY-MM-DDTHH:mm'));
    }
    
    0 讨论(0)
提交回复
热议问题