angular – 无法实例化DatePipe

前端之家收集整理的这篇文章主要介绍了angular – 无法实例化DatePipe前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图在我的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.

我该如何解决这个问题?还有另一种实例化管道的方法吗?或者Angular是否停止支持在组件内部实例化Pipes?

如果您查看源代码,那么您将看到DatePipe构造函数请求所需的参数:
constructor(@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
}

希望它能帮到你!

原文链接:https://www.f2er.com/angularjs/141708.html

猜你在找的Angularjs相关文章