首页 > 解决方案 > 在 Angular 8 的控制台(来自 devtools)上访问 Angular 的正确方法是什么?

问题描述

我正在运行 Angular 8。遵循此处可能已过时的建议——如何从控制台测试 AngularJS 服务?,我正在尝试从 Chrome devtools 控制台访问 Angular 服务。以下是令人失望的输出

Angular is running in the development mode. Call enableProdMode() to enable the production mode.
injector = angular.element(document.body).injector()
VM914:1 Uncaught ReferenceError: angular is not defined
    at <anonymous>:1:1

在 Angular 8 的命令行中访问 Angular 的正确方法是什么?

标签: angularconsolegoogle-chrome-devtoolsangular8

解决方案


您可以只保存全局注入器类的引用

main.ts

import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';


if (environment.production) { //  production
  enableProdMode();
} else { //  development
  const platform = platformBrowserDynamic();
  window['injector'] = platform.injector;
}

注射器

更新!!

其他选项,不存储全局注入器的引用

const inj = ng.probe(document.querySelector('app-root')).injector;

推荐阅读