如何全局访问根 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/