gpt4 book ai didi

来自其他功能模块的 Angular 2 导入服务

转载 作者:太空狗 更新时间:2023-10-29 18:32:25 25 4
gpt4 key购买 nike

上下文

假设我有一个 Angular 2 功能模块 Movies 和一个功能模块 DashboardMovie 模块有一个服务 movies.serviceMovies 模块公开/提供。

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

问题

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

一个功能模块依赖另一个功能模块我觉得有点奇怪,但是如果你通过每个功能模块中的Shared模块导入服务,服务不会被实例化两次吗,一个每次进口?

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

Arg,我觉得我正在制造一个不存在的问题..有人可以放松一下我的大脑.. thx :P

最佳答案

我会将 movie.service 放入 movie.module 中。如果该模块不是延迟加载的,则可注入(inject)服务可用于其他模块。使用延迟加载,事情会变得复杂,因为随后会创建一个新的注入(inject)上下文。

但是,如果您决定将您的服务放入 sharedModule 中,它也应该可以工作,但是这很危险。您不会一次拥有两个服务实例,因为根注入(inject)器将始终采用最后一个初始化的实例,除非有一个延迟加载的模块导入此共享模块。

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

有关更多信息,请阅读 Angular 样式指南:https://angular.io/styleguide#!#04-11

关于来自其他功能模块的 Angular 2 导入服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40936639/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com