|
1
1
我认为在你的理解中,导致你困惑的缺失部分是Angular的 lazy loading feature 当模块导入到其他模块中(非延迟加载)时,这些模块中列出的所有提供程序将合并到同一个注入器中。这些提供程序将在整个应用程序生命周期内有效。
考虑下面的例子:
到目前为止,我只讨论了模块文件中列出的提供者。然后是最近的使用习惯(从第6章开始)
|
|
2
0
对于延迟加载的模块,将创建根注入器的另一个子级,该子级将复制根注入器中的所有内容以及延迟模块中声明的提供程序。在惰性加载组件的上下文中,提供程序从这个子注入器注入,而不是从根注入器注入。
在这种情况下,每个组件都将获得自己的提供程序副本,该副本与根注入器中配置的实例不同。当您需要不希望跨组件共享的提供程序的私有副本时,请执行此操作。 |