gpt4 book ai didi

angular - 如何从 NgbModal 中的延迟加载模块打开组件?

转载 作者:太空狗 更新时间:2023-10-29 17:15:35 34 4
gpt4 key购买 nike

我在尝试从惰性加载模块加载动态组件时遇到问题。更准确地说,我试图以模式 ( https://ng-bootstrap.github.io/#/components/modal/examples ) 而不是在单独的页面中打开登录组件,同时保持单独的登录路由/页面完整。

现在,在我看来,一个选项是我必须急切地在应用程序模块中加载登录组件,这只不过是一个临时 hack。所以,我不想要这个解决方案。

我曾尝试直接使用该组件,但如我所料,它给了我以下错误:

没有找到 SigninComponent 的组件工厂。您是否将其添加到@NgModule.entryComponents?

我搜索并找到了这个链接:https://github.com/angular/angular/issues/14324但不能让它工作。

我很惊讶我找不到合适的解决方案来解决这个问题,因为这是一个非常常见的用例。任何帮助或建议表示赞赏。谢谢!

最佳答案

不能通过选择器直接在模板中使用的组件必须添加到 @NgModule 装饰器中模块的 entryComponents 数组中。在 Bootstrap 中打开模式时,您实际上并没有在任何地方使用组件的选择器,因此您的 SignInComponent 就是一个这样的例子。

你会做这样的事情

@NgModule({
//...
declarations: [
SignInComponent,
],
entryComponents: [
SignInComponent,
]
})
export class LazyLoadedModule {
}

标记一个组件进行编译,即使它没有通过其选择器在任何其他组件的模板中引用。

您可以在官方 Angular 文档中阅读更多关于入口组件、它们如何工作以及为什么需要以这种方式声明它们的信息 here .以及这个 StackOverflow post .

关于angular - 如何从 NgbModal 中的延迟加载模块打开组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48125881/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com