加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-17 06:59:39 所属栏目:安全 来源:网络整理
导读:我在尝试从延迟加载的模块加载动态组件时遇到问题.更准确地说,我试图在一个模态( https://ng-bootstrap.github.io/#/components/modal/examples)中打开登录组件,而不是在一个单独的页面中,同时保持单独的登录路由/页面完整. 现在,在我看来,我必须在app模块中
我在尝试从延迟加载的模块加载动态组件时遇到问题.更准确地说,我试图在一个模态( https://ng-bootstrap.github.io/#/components/modal/examples)中打开登录组件,而不是在一个单独的页面中,同时保持单独的登录路由/页面完整.

现在,在我看来,我必须在app模块中急切加载登录组件,这只不过是一个临时的黑客.所以,我不想要这个解决方案.

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

找不到SigninComponent的组件工厂.你有没有把它添加到@ NgModule.entryComponents?

我搜索并发现此链接:https://github.com/angular/angular/issues/14324但无法使其工作.

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

解决方法

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

你会做这样的事情

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

标记组件以进行编译,即使它未通过其选择器在任何其他组件的模板中引用.

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读