我试图在我的Angular2应用程序中实例化一个DatePipe对象,以便在我正在开发的组件中使用transform(…)函数.
// ... import { DatePipe } from '@angular/common'; @Component({...}) export class PanelComponent implements OnInit { // ... datePipe: DatePipe = new DatePipe(); // Error thrown here // ... }
此代码段在RC5中运行良好.现在我正在尝试升级到Angular2最终版本并在运行服务或ng构建时出现此错误,
~/tmp/broccoli_type_script_compiler-input_base_path-XitPWaey.tmp/0/src/app/panel/panel.component.ts (33,24): Supplied parameters do not match any signature of call target.
如果您查看源代码,那么您将看到DatePipe构造函数请求所需的参数:
原文链接:https://www.f2er.com/angularjs/141708.htmlconstructor(@Inject(LOCALE_ID) private _locale: string) {}
DataPipe没有默认语言环境
https://github.com/angular/angular/blob/2.0.0/modules/%40angular/common/src/pipes/date_pipe.ts#L97
这就是打字稿给出错误的原因.
这样您就必须启动变量,如下所示:
datePipeEn: DatePipe = new DatePipe('en-US') datePipeFr: DatePipe = new DatePipe('fr-FR') constructor() { console.log(this.datePipeEn.transform(new Date(),'dd MMMM')); // 21 September console.log(this.datePipeFr.transform(new Date(),'dd MMMM')); // 21 septembre }
希望它能帮到你!