作为Angular开发人员,我们经常使用和创建服务。所以,在今天的文章中,让我们揭开下面语法的神秘面纱,看看它有哪些不同的选项:

当服务为在根注入器中提供(providedIn:“根”
),这意味着这样的服务可以被注入到应用程序的任何组件中,并且该服务将是应用程序中所有消费者共享的单例服务。
如果要限制服务的范围,可以在模块或者一个组件而不是根注入器。语法是这样的——我们使用目标模块或组件的类名:

当一个模块提供服务时,只有该模块的组件/指令/管道/服务可以注入该服务。然而,当在组件中提供时,该组件和它的孩子可以注入该服务。
从语法的角度来看,提到using也是很重要的providedIn
相当于在组件或模块中执行以下操作:

上述代码等价于以下代码:

所以你只需要其中一个;两者都是多余的。
最后,还有另一种选择:平台
.

该服务可以被注入到当前浏览器选项卡中的任何Angular应用中。这是一个罕见的用例,但如果你在同一个页面上运行多个Angular应用程序,并且想在这些应用程序之间共享服务,平台
是你需要的。
欲了解更多信息,请阅读我的那篇文章涵盖了所有这些选项(注意:providedIn:“任何”
以前是一个选项,但现在已弃用,这就是为什么我没有提到它)