我对用于摇动树的provideIn添加感到非常困惑。我有一个包含test.module.ts test.component.ts test.service.ts的文件夹test,问题是我应该使用: 1)在服务中:
@Injectable({ providedIn: TestModule, })
2)或在模块中:
providers: [TestService]
为什么是第一种解决方案或第二种解决方案?提前谢谢。
发布于 2018-06-03 13:58:14
对于angular6,您应该使用1 (providedIn根目录)为所有应用程序创建一个可注入的单一实例服务,或者使用provideIn X仅在X加载时生成该服务的实例。
2是否可以用另一个新的实现覆盖注入(测试?)
Angular 6引入了provideIn,因为以前所有的服务都被全局指定为根包的提供者,并且在启动时被实例化,尽管它们没有被任何模块使用。
发布于 2018-11-05 14:23:27
官方Angular文档配置提供者的位置
https://angular.io/guide/hierarchical-dependency-injection#where-to-register
您可以将providedIn设置为特定的NgModule,而不是指定根注入程序。
..。
这通常与配置NgModule本身的注入器没有什么不同,只是如果NgModule不使用该服务,则该服务是可树摇动的。对于提供某些组件可能想要选择性注入的特定服务的库来说,它可能很有用,并将是否提供该服务留给应用程序。
发布于 2018-05-14 23:26:01
区别是..。1)对于每个模块实例,您将拥有一个服务实例。2)每个组件都有相同的实例。
https://stackoverflow.com/questions/50333902
复制相似问题