依赖注入和提供者配置

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

当服务为在根注入器中提供providedIn:“根”),这意味着这样的服务可以被注入到应用程序的任何组件中,并且该服务将是应用程序中所有消费者共享的单例服务。

如果要限制服务的范围,可以在模块或者一个组件而不是根注入器。语法是这样的——我们使用目标模块或组件的类名:

当一个模块提供服务时,只有该模块的组件/指令/管道/服务可以注入该服务。然而,当在组件中提供时,该组件和它的孩子可以注入该服务。

从语法的角度来看,提到using也是很重要的providedIn相当于在组件或模块中执行以下操作:

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

所以你只需要其中一个;两者都是多余的。

最后,还有另一种选择:平台

该服务可以被注入到当前浏览器选项卡中的任何Angular应用中。这是一个罕见的用例,但如果你在同一个页面上运行多个Angular应用程序,并且想在这些应用程序之间共享服务,平台是你需要的。

欲了解更多信息,请阅读我的那篇文章涵盖了所有这些选项(注意:providedIn:“任何”以前是一个选项,但现在已弃用,这就是为什么我没有提到它)

betway必威滚球

Alain是谷歌开发专家,擅长Web技术、Angular和谷歌地图。他的日常任务是帮助开发团队采用Angular,并使用该框架进行大规模构建。他在六大洲都教授过Angular !阿兰是一名世界旅行家和摄影师,也是国际会议的演讲者,并出版了几门视频课程。