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