是否可以在延迟加载的功能模块上声明入口组件? 我收到这样的错误:
ERROR Error: No component factory found for NewMessageModalComponent. Did you add it to @NgModule.entryComponents?
这是我的功能模块:
@NgModule({
declarations: [
NewMessageModalComponent
],
imports: [
MessagesRoutingModule
],
entryComponents: [
NewMessageModalComponent
]
})
export class MessagesModule {
}
根AppModule
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
FormsModule,
AppRoutingModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule {
}
root RoutingModule
const routes: Routes = [
{
path: 'messages',
loadChildren: './messages/messages.module#MessagesModule',
}
];
@NgModule({
imports: [
RouterModule.forRoot(routes)
],
exports: [RouterModule],
providers: []
})
export class AppRoutingModule {
}
我知道,当我在AppModule上声明入口组件时,此方法有效,但为什么在功能模块上不起作用?
答案 0 :(得分:0)
目前似乎不支持此功能,并且该问题被标记为“功能”。
https://github.com/angular/angular/issues/14324#issuecomment-433389833
建议的解决方案:即使这与模块化设计背道而驰 我认为Angular本身会采用 创建动态组件可以通过简单地附加 LazyModule的entryComponents到RootInjector的entryComponents和 以避免在每次浏览时淹没RootInjector( 销毁LazyModule),先前注入的entryComponents 将从阵列中删除。