angular - 全局访问根 Angular 2 注入(inject)器实例

标签 angular dependency-injection

如何全局访问根 Angular 2 注入(inject)器的实例(例如,从浏览器控制台)。

在 Angular 1 中它是 angular.element(document).injector()

在测试和探索期间,使用浏览器控制台获取注入(inject)器然后访问不同组件、指令、服务等的实例可能很有用。

最佳答案

您必须在启动应用程序后将其设置为服务:

export var applicationInjector: Injector;

bootstrap([AppComponent]).then((componentRef: ComponentRef) => {
  applicationInjector = componentRef.injector;
});

然后您可以将其导入到应用程序的其他部分:

import {applicationInjector} from './bootstrap';

有关详细信息,请参阅此问题:

编辑

您可以将 ApplicationRef 注入(inject)组件并通过它访问根注入(inject)器:

@Component({
  (...)
})
export class SomeComponent {
  constructor(private app:ApplicationRef) {
    var rootInjector = app.injector;
  }
}

您需要利用依赖注入(inject)来获取它。

关于angular - 全局访问根 Angular 2 注入(inject)器实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36455305/

相关文章:

Angular 2 - 来自 Observable 的排序列表

c# - .NET Core 2.2 DI 容器中的上下文绑定(bind)?

java - 如何使用 spring 依赖注入(inject)连接多个 fxml Controller ?

java - 静态方法是 DI 反模式吗?

SpringBoot : how to inject two classes having same name

angular - 如何在 Angular 应用中实现 CKEditor?

javascript - 在 Angular 中,如何在 http get 返回结果对象之前操作它们?

c# - ASP.NET Core 中的 IServiceProvider

javascript - 如何将 Typed.js 与 Angular 2 集成?

angular2 - 带复选框的 FormArray