Estoy usando una plantilla de Angular 4 con webpack y tengo este error cuando intento usar un componente (ConfirmComponent):
No se ha encontrado ninguna fábrica de componentes para ConfirmComponent. ¿Lo has añadido a
@NgModule.entryComponents?
El componente está declarado en app.module.server.ts
.
``typescript
@NgModule({
bootstrap: [AppComponent],
imports: [
// ...
],
entryComponents: [
ConfirmComponent,
],
})
export class AppModule { }
También tengo `app.module.browser.ts` y `app.module.shared.ts`.
¿Cómo puedo arreglar eso?
Añade esto en tu module.ts
,
``typescript
Declaraciones: [
AppComponent,
ConfirmComponent
]
si ConfirmComponent está en otro módulo, necesitas exportarlo allí para poder usarlo fuera, añade:
``typescript
exportaciones: [ ConfirmComponent ]
En el caso de un componente cargado dinámicamente y para que se genere un ComponentFactory, el componente debe añadirse también a los entryComponents del módulo: ``typescript declaraciones: [ AppComponent, ConfirmComponent ], entryComponents: [ConfirmComponent],
según la definición de entryComponents
> Especifica una lista de componentes que deben ser compilados cuando se define este módulo. Para cada componente enumerado aquí, Angular creará un ComponentFactory y lo almacenará en el ComponentFactoryResolver.
He tenido el mismo problema. En este caso imports [...]
es crucial, porque no funcionará si no importa NgbModalModule
.
La descripción del error dice que los componentes deben ser añadidos al array entryComponents
y es obvio, pero asegúrate de que has añadido este en primer lugar:
imports: [
...
NgbModalModule,
...
],
si utiliza el enrutamiento en su aplicación
Asegúrese de añadir nuevos componentes en la ruta de enrutamiento
por ejemplo :
const appRoutes: Routes = [
{ path: '', component: LoginComponent },
{ path: 'home', component: HomeComponent },
{ path: 'fundList', component: FundListComponent },
];