首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >angular6 - provideIn @Injectable service

angular6 - provideIn @Injectable service
EN

Stack Overflow用户
提问于 2018-05-14 23:23:18
回答 3查看 1.3K关注 0票数 0

我对用于摇动树的provideIn添加感到非常困惑。我有一个包含test.module.ts test.component.ts test.service.ts的文件夹test,问题是我应该使用: 1)在服务中:

@Injectable({ providedIn: TestModule, })

2)或在模块中:

providers: [TestService]

为什么是第一种解决方案或第二种解决方案?提前谢谢。

EN

回答 3

Stack Overflow用户

发布于 2018-06-03 13:58:14

对于angular6,您应该使用1 (providedIn根目录)为所有应用程序创建一个可注入的单一实例服务,或者使用provideIn X仅在X加载时生成该服务的实例。

2是否可以用另一个新的实现覆盖注入(测试?)

Angular 6引入了provideIn,因为以前所有的服务都被全局指定为根包的提供者,并且在启动时被实例化,尽管它们没有被任何模块使用。

票数 1
EN

Stack Overflow用户

发布于 2018-11-05 14:23:27

官方Angular文档配置提供者的位置

https://angular.io/guide/hierarchical-dependency-injection#where-to-register

您可以将providedIn设置为特定的NgModule,而不是指定根注入程序。

..。

这通常与配置NgModule本身的注入器没有什么不同,只是如果NgModule不使用该服务,则该服务是可树摇动的。对于提供某些组件可能想要选择性注入的特定服务的库来说,它可能很有用,并将是否提供该服务留给应用程序。

票数 0
EN

Stack Overflow用户

发布于 2018-05-14 23:26:01

区别是..。1)对于每个模块实例,您将拥有一个服务实例。2)每个组件都有相同的实例。

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

https://stackoverflow.com/questions/50333902

复制
相关文章

相似问题

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