首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从其他功能模块导入服务

从其他功能模块导入服务
EN

Stack Overflow用户
提问于 2016-12-02 16:18:49
回答 1查看 579关注 0票数 3

上下文

假设我有一个角2特征模块Movies和一个特征模块DashboardMovie模块具有由Movies模块公开/提供的服务movies.service

现在,Dashboard模块中的一个组件也希望使用此服务来显示电影的子集。

问题

您是应该导入该组件中的服务并使用该服务,从而有效地使Dashboard模块依赖于Movies模块,还是应该将服务移动到Shared模块并将其导入两个功能模块中?

依赖于另一个功能模块的特性模块让我感到有点奇怪,但是如果您通过每个特性模块中的Shared模块导入服务,那么服务不是会被实例化两次吗?

那么您可以将它添加到核心模块中,以确保它只导入一次。但这不是一个核心服务,所以这感觉更奇怪!

阿格,我觉得我在制造一个不存在的问题。有人能让我放松一下吗..thx :P

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-04 12:44:45

我会把movie.service放到movie.module里。如果该模块不是延迟加载的,那么其他模块可以使用可注入的服务。使用延迟加载会使事情变得复杂,因为这样就会创建一个新的注入上下文。

但是,如果您决定将您的服务放入sharedModule,它也应该工作,但这是危险的。您不会一次拥有两个服务实例,因为根注入器总是接受最后一个初始化的实例,只是有一个延迟加载的模块导入了这个共享模块。

角层指南告诉我们,将在CoreModule中的整个应用程序中共享其实例的单例服务。

欲了解更多信息,请阅读角样式指南:https://angular.io/styleguide#!#04-11

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40936639

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档