Ich verwende Angular 4 Vorlage mit Webpack und ich habe diesen Fehler, wenn ich versuche, eine Komponente (ConfirmComponent) zu verwenden:
Keine Komponentenfabrik für ConfirmComponent gefunden. Haben Sie es hinzugefügt, um @NgModule.entryComponents?
Die Komponente ist in app.module.server.ts
deklariert
@NgModule({
bootstrap: [ AppComponent ],
imports: [
// ...
],
entryComponents: [
ConfirmComponent,
],
})
export class AppModule { }
Ich habe auch app.module.browser.ts
und app.module.shared.ts
Wie kann ich das ändern?
Fügen Sie dies in Ihre module.ts
ein,
``Typescript
Deklarationen: [
AppComponent,
ConfirmComponent
]
wenn ConfirmComponent in einem anderen Modul ist, müssen Sie es dorthin exportieren, damit Sie es außerhalb verwenden können, fügen Sie hinzu:
```typescript
exportiert: [ ConfirmComponent ]
Im Falle einer dynamisch geladenen Komponente und damit eine ComponentFactory erzeugt werden kann, muss die Komponente auch zu den entryComponents des Moduls hinzugefügt werden:
Deklarationen: [
AppKomponente,
Bestätigungskomponente
],
entryComponents: [ConfirmComponent],
gemäß der Definition von entryComponents
Gibt eine Liste von Komponenten an, die kompiliert werden sollen, wenn dieses Modul definiert wird. Für jede hier aufgeführte Komponente erstellt Angular eine ComponentFactory und speichert sie im ComponentFactoryResolver.
Ich hatte das gleiche Problem. In diesem Fall ist imports [...]
entscheidend, denn es wird nicht funktionieren, wenn Sie NgbModalModule
nicht importieren.
Die Fehlerbeschreibung besagt, dass die Komponenten zum Array entryComponents
hinzugefügt werden sollten, und das ist offensichtlich, aber stellen Sie sicher, dass Sie dieses Array überhaupt hinzugefügt haben:
imports: [
...
NgbModalModule,
...
],
wenn Sie in Ihrer Anwendung Routing verwenden
sicherstellen, dass neue Komponenten in den Routing-Pfad aufgenommen werden
zum Beispiel :
const appRoutes: Routes = [
{ path: '', component: LoginComponent },
{ path: 'home', component: HomeComponent },
{ path: 'fundList', component: FundListComponent },
];