【问题标题】:Opening a modal from a lazy loaded module从延迟加载的模块打开模式
【发布时间】:2017-01-30 11:42:06
【问题描述】:

我有一个基于 angular2-webpack-starter 种子项目的项目,我正在尝试集成 ng-bootstrap - 特别是模态。

我有一个 SharedModule,我在其中导入 NgbModule 并重新导出它。我的应用程序中的所有其他模块都会导入 SharedModule。

我已经按照文档在我的 app.component.html 中配置了 ngbModalContainer。

我现在有一个需要打开模式的延迟加载模块。当我尝试在 NgbModal 服务上调用 open(...) 方法时,我收到一条错误消息,指出它找不到容器:

缺少模态容器,添加 到您的应用程序模板之一。

我认为这是因为延迟加载的模块正在导入 SharedModule,并且接收的 NgbModal 服务实例与根应用程序模块不同。

我的问题是 - 配置它的正确方法是什么,以便 NgbModal(以及其他 ng-bootstrap 服务/组件)在应用程序范围内可用,包括延迟加载的模块。

谢谢!

【问题讨论】:

标签: angular ng-bootstrap


【解决方案1】:

在根模块(app.module.ts) 中导入 NgbModule.forRoot() 然后延迟加载模块导入 NgbModule

【讨论】:

  • 我会将此标记为正确,但在提出此问题时,没有可用的 forRoot 方法。我实际上是通过添加它来贡献的:)
  • 你能解释一下“延迟加载模块导入 NgbModule”是什么意思吗?如何延迟加载导入(而不是路由?)
猜你喜欢
  • 2020-06-29
  • 1970-01-01
  • 2018-05-22
  • 2017-02-22
  • 1970-01-01
  • 2018-06-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多