在我看来,如果 A.module
导入 B.module
和 B.module
导入 C.module
,则 A.module
导入 C.module
。这就是许多角度开发人员构建一个名为Shared.module
的公共模块的原因。
但是,此规则看起来不适用于DatePipe
。我已经构建了Shared.module
,CommonModule
在此模块中导入并导出。然后,我在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 {}