Angular 4订阅不能在lazyload中工作

时间:2017-08-13 15:12:32

标签: angular

使用此示例:enter link description here

一切都很完美 - 直到我使组件成为一个惰性组件,然后加载器停止出现。 我知道我在这里缺少什么吗?

2 个答案:

答案 0 :(得分:1)

服务是可注入的,Angular默认为每个提供者(服务)创建一个单例。那些单身人士会被传递给你的组件。 延迟加载模块时,将重新创建模块提供程序。因此,该模块内的组件将获得相同服务的新实例。这就是您的订阅未被触发的原因。

您应该创建一个可以在延迟加载的模块中使用的共享模块。这个答案可以帮助你: https://stackoverflow.com/a/39672933/2640826

答案 1 :(得分:0)

好的,发现了问题,但我不明白原因。

我在一个公共模块中有一个服务,它是(模块)导入到app模块。 由于某种原因,这些服务在lazyload模块中不起作用, 但是,当我将它们从公共模块中的提供程序部分移动到主应用程序模块中的提供程序部分时,它们确实有效。

很高兴知道为什么会这样?