我面临一个名为“注入(inject)上下文”的术语,并试图弄清楚它实际上是什么。 因为在 Angular 上我们有以下与注入(inject)上下文相关的东西(如下所列):
EnvironmentInjector#runInContext
injectionContext
;runInInjectionContext
;注入(inject)()
;
我发现 inject()
- 可以从注入(inject)上下文中调用(作为构造函数呈现;工厂函数、字段初始值设定项)
我试图调查 Ang( https://angular.io/api/core/EnvironmentInjector ) - 但我根本不清楚。 因此,如果有人能够阐明与此注入(inject)上下文以某种方式相关的其他事物,并提供我们何时应该使用它以及用于什么用途的字面用例,那就太好了。
最佳答案
注入(inject)上下文是可在应用程序组件树中的特定点注入(inject)的一组提供程序。它由当前正在实例化的组件及其父组件决定。当组件被实例化时,注入(inject)器会在组件自己的注入(inject)器中查找提供程序,然后在其父注入(inject)器中查找提供程序,在组件树中递归地向上查找,直到到达根注入(inject)器。
注入(inject)上下文很重要,因为它决定了在组件树中的给定点哪些提供程序可用于注入(inject)。如果提供者在注入(inject)上下文中不可用,则当组件或服务尝试注入(inject)它时将引发错误。因此,在组件树中的适当级别定义提供程序非常重要,以确保它们在需要时可用。
如果您想扩展有关 Angular 中依赖注入(inject)在幕后如何工作的知识,您可以观看此 video时间 32:00。
希望有帮助。
关于javascript - Angular 16+ 中的注入(inject)上下文是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76237681/