依赖注入的优先级和层次

昨天,我们介绍了配置我们的提供商的不同选项providedIn语法。今天,让我们来看看Angular是如何使用分层的喷油器

假设有aButtonComponent这需要一个LoginService。Angular会检查的注入器ButtonComponent看看是否LoginService是可用的(因为所有组件都有自己的注入器,可配置的数组供应商或者是providedIn语法)。

假设组件注入器不知道这个服务。在这种情况下,它会问它的父组件,然后是祖父组件,沿着组件层次结构往上走,直到到达应用的根注入器:

这些被称为分层的喷油器它们依赖于我们的组件层次结构。这解释了为什么在组件级别更改提供商的配置会影响组件及其所有子组件。

模块呢?

如果某个服务在组件树中找不到,那么Angular就会使用类似的解析路径模块的层次结构,从子模块一直到AppModule

如果没有找到服务,Angular就会抛出一个错误,指出该服务没有可用的提供商。

betway必威滚球

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