Jeg bruger Angular 4-skabelon med webpack og jeg har denne fejl, når jeg forsøger at bruge en komponent (ConfirmComponent):
Ingen komponentfabrik fundet for ConfirmComponent. Har du tilføjet den til @NgModule.entryComponents?
Komponenten er erklæret i app.module.server.ts
@NgModule({
bootstrap: [ AppComponent ],
imports: : [
// ...
],
entryComponents: : [
ConfirmComponent,
],
})
export class AppModule { }
```
Jeg har også `app.module.browser.ts` og `app.module.shared.ts`
Hvordan kan jeg rette det?
Tilføj dette i din module.ts
,
deklarationer: [
AppComponent,
ConfirmComponent
]
```
hvis ConfirmComponent er i et andet modul, skal du eksportere den der, så du kan bruge den udenfor, tilføj:
````typescript
eksporterer: [ ConfirmComponent ]
```
I tilfælde af en dynamisk indlæst komponent og for at der kan genereres en ComponentFactory, skal komponenten også tilføjes til modulets entryComponents:
````typescript
deklarationer: [
AppComponent,
ConfirmComponent
],
entryComponents: : [ConfirmComponent],
```
i henhold til definitionen af entryComponents
> Angiver en liste over komponenter, der skal kompileres, når dette modul er defineret. For hver komponent, der er anført her, opretter Angular en ComponentFactory og gemmer den i ComponentFactoryResolver.
Jeg havde det samme problem. I dette tilfælde er imports [...]
afgørende, for det vil ikke virke, hvis du ikke importerer NgbModalModule
.
Fejlbeskrivelsen siger, at komponenter skal tilføjes til entryComponents
arrayet, og det er indlysende, men sørg for at du har tilføjet dette i første omgang:
imports: [
...
NgbModalModule,
...
],
hvis du bruger routing i din applikation
Sørg for at tilføje nye komponenter i routing-stien
for eksempel :
const appRoutes: Routes = [
{ path: '', component: LoginComponent },
{ path: 'home', component: HomeComponent },
{ path: 'fundList', component: FundListComponent },
];