Angular动态加载的模块需要使用根注入器服务

时间:2019-03-05 15:47:36

标签: javascript angular angular6

我正在JS中使用系统Angular 6并使用angular-cli动态加载模块,与下面的链接非常相​​似。

Load new modules dynamically in run-time with Angular CLI & Angular 5

动态加载的模块将创建其子注入器,并创建新的服务实例,而不使用根注入器中的服务。

根据Angular文档,延迟加载的模块创建其自己的子注入器和服务实例。为了避免这种情况(对于单例),他们建议在延迟加载的模块中创建forRoot静态方法,并将其导入到应用程序模块中。

但就我而言,由于我在运行时加载模块,因此无法在引导程序中导入LazyLoadedMOdule.forRoot()。我知道哪个模块只会在运行时加载。

您能否建议保持服务单例并在动态加载的模块中使用它?

1 个答案:

答案 0 :(得分:0)

对于需要在整个应用程序中都是单例的服务,建议的方法是在 core 模块中定义这些服务,然后将其导入到根模块(AppModule)中。

您可以参考Angular Style Guide了解更多详细信息。