首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >无法实例化DatePipe

无法实例化DatePipe
EN

Stack Overflow用户
提问于 2016-09-21 12:28:26
回答 2查看 18.3K关注 0票数 10

我正在尝试在我的Angular2应用程序中实例化一个DatePipe对象,以便在我正在开发的组件中使用transform(...)函数。

代码语言:javascript
代码运行次数:0
运行
复制
// ...
import { DatePipe } from '@angular/common';

@Component({...})
export class PanelComponent implements OnInit {
    // ...
    datePipe: DatePipe = new DatePipe(); // Error thrown here
    // ...
}

这个代码段在RC5中工作得很好。现在,我正在尝试升级到Angular2最终版本,但在运行ng serveng build时出现此错误。

代码语言:javascript
代码运行次数:0
运行
复制
~/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已经停止支持组件内部管道的实例化?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-09-21 14:15:09

如果你看一下源代码,你会发现DatePipe构造函数要求提供一个必需的参数:

代码语言:javascript
代码运行次数:0
运行
复制
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

这就是为什么typescript会给出错误。这样你就必须初始化你的变量,如下所示:

代码语言:javascript
代码运行次数:0
运行
复制
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
}

希望能对你有所帮助!

票数 27
EN

Stack Overflow用户

发布于 2016-09-21 13:46:34

看起来一切正常,错误一定是代码中的其他地方出了错。请看我的推杆:https://plnkr.co/edit/koDu6YmB131E6sXc6rKg?p=preview

代码语言:javascript
代码运行次数:0
运行
复制
import {Component, NgModule} from '@angular/core'
import {BrowserModule} from '@angular/platform-browser'
import {DatePipe} from '@angular/common';

@Component({
  selector: 'my-app',
  template: `
    <div>
      <h2>Hello {{name}}</h2>
    </div>
  `,
})
export class App {

  dPipe = new DatePipe();

  constructor() {
    this.name = 'Angular2'
    console.dir(this.dPipe);
    console.log(this.dPipe.transform(new Date(), 'dd.MM'));
  }
}

@NgModule({
  imports: [ BrowserModule ],
  declarations: [ App ],
  bootstrap: [ App ]
})
export class AppModule {}

和@Harry Ninh ..你不能注入管道!!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39607568

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档