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

Eve*_*Eve 2 module date-pipe angular

我认为,如果A.module导入B.moduleB.module导入C.module,那就是A.module导入C.module。这就是许多 Angular 开发人员构建名为 的公共模块的原因Shared.module

然而,这条规则看起来并不适用于DatePipe. 我构建了一个Shared.moduleCommonModule在这个模块中导入和导出。然后我导入Shared.modulein AppModule. 官方文件告诉我它DatePipe属于CommonModule.

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

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

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

谁能帮我解决这个问题?

Dul*_*oon 7

你说的是正确的。造成上述原因的原因是在CommonModule中,DatePipe 没有注册为提供者。

您可以做的是将 DatePipe 添加为共享模块中的提供程序。

providers: [DatePipe]
Run Code Online (Sandbox Code Playgroud)