私は 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
どうすれば修正できますか?
ベストアンサー1
これをあなたのに追加してくださいmodule.ts
、
declarations: [
AppComponent,
ConfirmComponent
]
ConfirmComponent が別のモジュールにある場合は、外部で使用できるようにそこにエクスポートする必要があります。以下を追加します。
exports: [ ConfirmComponent ]
---Ivy を明示的に有効にして Angular 9 または Angular 8 を更新する---
Ivy を使用したエントリ コンポーネントは不要になり、非推奨になりました。
---Ivy が無効になっている Angular 9 および 8 の場合---
動的にロードされるコンポーネントの場合、ComponentFactory を生成するには、コンポーネントをモジュールの entryComponents にも追加する必要があります。
declarations: [
AppComponent,
ConfirmComponent
],
entryComponents: [ConfirmComponent],
entryComponentsの定義によると
このモジュールが定義されるときにコンパイルされるコンポーネントのリストを指定します。ここにリストされている各コンポーネントに対して、Angular は ComponentFactory を作成し、それを ComponentFactoryResolver に格納します。