当前位置: 首页 > 知识库问答 >
问题:

无法实例化DatePipe

周洋
2023-03-14

我试图在Angular2应用程序中实例化一个日期管道对象,以便在我正在开发的组件中使用转换(…)

// ...
import { DatePipe } from '@angular/common';

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

这个代码段在RC5中运行良好。现在我正在尝试升级到Angular2最终版本,并在运行<code>ng serve</code>或<code>ng build</code>时出现此错误,

~/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是否停止支持组件内部管道的实例化?

共有2个答案

刘绍晖
2023-03-14

看起来一切正常,错误一定在代码中的其他地方。看看我的小玩意儿:https://plnkr.co/edit/koDu6YmB131E6sXc6rKg?p=preview

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 {}

还有@哈利宁..你不能注射管子!!

戚飞
2023-03-14

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

constructor(@Inject(LOCALE_ID) private _locale: string) {}

数据管道没有默认区域设置

https://github.com/angular/angular/blob/2.0.0/modules/@angular/common/src/pipes/date_pipe.ts#L97

这就是为什么typescript给出错误的原因。这样,您必须启动变量,如下所示:

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
}
 类似资料:
  • 我试图使用Postgis 2.2和Postgreql 9.5与JPA,Postgis 9.5方言。我已经在pom.xml的要求,按这里http://www.hibernatespatial.org/documentation/documentation/和类型导入正确,但是当我试图运行程序使用几何类型我得到这个错误: 我显然遗漏了一些配置,有人能指出是什么吗?

  • 我在MapFragment的布局文件中出现了这个错误 我试过了 > 安装Google Play服务,但仍有错误 - com.google.android.gms.maps.MapFragment(开放类,显示异常,清除缓存) 提示:在自定义视图中使用view.isinEditMode()跳过代码或在IDE中显示示例数据。 如果这是一个意外错误,您也可以尝试构建项目,然后手动刷新布局。 异常详细信息

  • 我正在将一个Java EE应用程序部署到Bluemix,当第一个请求到达时,我得到了这个错误: 2015-05-20T23:11:58.51+0200[app/0]OUT[INFO]FFDC1015I:已创建FFDC事件:“java.util.ServiceConfigurationError:javax.servlet.ServletContainerInitializer:Provider o

  • 我正在尝试将H2设置为内存数据库。我已将其配置为: 然而,当我尝试运行它时,我会遇到这个错误 我不确定它为什么不接受jdbc url,我的confg格式有什么问题吗?

  • 我想使用我的本地代码通过spark-sql连接到远程配置单元。这是我的代码: 请帮帮我.