我正在使用带有 webpack 的 Angular 4 模板,当我尝试使用组件(ConfirmComponent)时出现此错误:
未找到 ConfirmComponent 的组件工厂。你把它添加到@NgModule.entryComponents 了吗?
组件声明在app.module.server.ts
app.module.server.ts
@NgModule({ bootstrap: [ AppComponent ], imports: [ // ... ], entryComponents: [ ConfirmComponent, ], }) export class AppModule { }
我也 app.module.browser.ts有app.module.shared.ts
app.module.browser.ts
app.module.shared.ts
我该如何解决?
将此添加到您的module.ts,
module.ts
declarations: [ AppComponent, ConfirmComponent ]
如果 ConfirmComponent 在另一个模块中,您需要将其导出到那里,以便您可以在外部使用它,添加:
exports: [ ConfirmComponent ]
-–更新 Angular 9 或 Angular 8 并明确启用 Ivy —
不再需要使用 Ivy 的入口组件,现在已弃用
-–对于禁用常春藤的 Angular 9 和 8—
在动态加载组件的情况下,为了生成 ComponentFactory,还必须将组件添加到模块的 entryComponents 中:
declarations: [ AppComponent, ConfirmComponent ], entryComponents: [ConfirmComponent],
根据entryComponents的定义
指定定义此模块时应编译的组件列表。对于这里列出的每个组件,Angular 都会创建一个 ComponentFactory 并将其存储在 ComponentFactoryResolver 中。