为什么我导入"Common"模块仍然无法使用 Angular 7 中的 DatePipe?



在我看来,如果 A.module导入 B.moduleB.module导入 C.module,则 A.module导入 C.module。这就是许多角度开发人员构建一个名为Shared.module的公共模块的原因。

但是,此规则看起来不适用于DatePipe。我已经构建了Shared.moduleCommonModule在此模块中导入并导出。然后,我在AppModule中导入Shared.module。官方文件告诉我DatePipe属于CommonModule

不幸的是,浏览器控制台显示错误:NullInjectorError: "StaticInjectorError(AppModule)[AppComponent -> DatePipe]:

您可以在下面的链接中看到代码。

https://stackblitz.com/edit/angular-common-datepipe?embed=1&file=src/app/app/app/app.component.ts

谁可以帮助我找出这个问题?

您所说的是正确的。上述原因的原因是,在 commonmodule 中,datepipe未注册为提供商。

您能做的就是在共享模块中添加DatePipe作为提供商。

providers: [DatePipe]

管道在角度不可注射。您必须手动提供它们。

@NgModule({
   declarations: [AppComponent],
   providers: [DatePipe]
   // ....
{)
export class AppModule {}

相关内容

  • 没有找到相关文章

最新更新