Abd*_*uiz 8 typescript ng-bootstrap angular
我在尝试从延迟加载的模块加载动态组件时遇到问题.更确切地说,我试图在一个模态(https://ng-bootstrap.github.io/#/components/modal/examples)中打开登录组件,而不是在一个单独的页面中,同时保持单独的登录路由/页面完整.
现在,在我看来,我必须在app模块中急切加载登录组件,这只不过是一个临时的黑客.所以,我不想要这个解决方案.
我试过直接使用该组件,但正如我所料,它给了我以下错误:
找不到SigninComponent的组件工厂.你有没有把它添加到@ NgModule.entryComponents?
我搜索并找到了这个链接:https://github.com/angular/angular/issues/14324但无法使其正常工作.
我很惊讶我找不到这个问题的正确解决方案,因为这是一个非常常见的用例.任何帮助或建议表示赞赏.谢谢!
未通过选择器在模板中直接使用的组件必须添加到装饰器的模块entryComponents数组中@NgModule。在引导程序中打开模式时,您实际上并没有在任何地方使用组件的选择器,因此您的 SignInComponent 就是这样的示例之一。
你会做这样的事情
@NgModule({
//...
declarations: [
SignInComponent,
],
entryComponents: [
SignInComponent,
]
})
export class LazyLoadedModule {
}
Run Code Online (Sandbox Code Playgroud)
将组件标记为要编译,即使它没有通过其选择器在任何其他组件的模板中引用。
您可以在此处的官方 Angular 文档中阅读有关入口组件、它们如何工作以及为什么需要以这种方式声明它们的更多信息。以及这篇 StackOverflow帖子。
| 归档时间: |
|
| 查看次数: |
2532 次 |
| 最近记录: |