Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular2重用延迟加载模块中的服务_Angular_Angular2 Routing_Angular Services_Angular Module - Fatal编程技术网

Angular2重用延迟加载模块中的服务

Angular2重用延迟加载模块中的服务,angular,angular2-routing,angular-services,angular-module,Angular,Angular2 Routing,Angular Services,Angular Module,情况是这样的:我用forChild导入/导出了延迟加载的模块ModuleA和RouterModule。在模块A中,我有一个服务ServiceA,它在另一个延迟加载的模块模块B中被证明是可用的。我想重用ServiceA,据我所知,首选的解决方案是通过创建ModuleA.forRoot并将其导入CoreModule来全局注册它。但通过这种方式,我也将ModuleRoutingModule导入到CoreModule中,这会导致路由器中出现奇怪的行为 暂时,我在模块B的组件B中直接提供了ServiceA

情况是这样的:我用forChild导入/导出了延迟加载的模块ModuleA和RouterModule。在模块A中,我有一个服务ServiceA,它在另一个延迟加载的模块模块B中被证明是可用的。我想重用ServiceA,据我所知,首选的解决方案是通过创建ModuleA.forRoot并将其导入CoreModule来全局注册它。但通过这种方式,我也将ModuleRoutingModule导入到CoreModule中,这会导致路由器中出现奇怪的行为

暂时,我在模块B的组件B中直接提供了ServiceA,而不接触模块A-它仅在AppRoutingModule.loadChildren中导入


这个解决方案似乎反对在不同的组件中导入服务,但我不知道如何做得不同。我想到的一个解决方案是将ModuleA分为ModuleA和ModuleServices,然后全局导入ModuleServices。

延迟加载适用于独立的模块。听起来模块B依赖于模块A,因此,该模块A服务可能并不真正属于模块A,而是更为共享/核心的模块领域。延迟加载是针对独立模块的。听起来模块B依赖于模块A,因此,该模块A服务可能并不真正属于模块A,而是更多的共享/核心模块领域。