angular.injector - 无法找到自定义(与应用程序相关的)服务

时间:2015-08-04 12:25:34

标签: javascript angularjs

我有一个角色的应用程序。我启动它,然后打开chrome dev工具控制台并开始输入。

我想做一些$injector.get(...),在控制台中使用我的服务和工厂。但我不在DI语境中,所以...... $injectorangular.injector()相同,对吧?所以我输入angular.injector().get('MyModel')然后输入

Uncaught Error: [$injector:unpr] Unknown provider: MyModelProvider <- MyModel

嗯......为什么角度注入器无法找到我声明的模型:

MyModule.service('MyModel', MyModel);

并且我确定它有效,因为当我点击应用中的某些内容时,模型会被使用并正确调用API。

此外,如果我执行angular.injector().get('$attrs')或angular.injector()。get(&#39; $ scope&#39;)或其他什么,我会得到相同的错误。所以我可以看到我不能这样使用注射器。

我做错了什么?或者我的应用配置有问题吗?

或多或少,我想要做的是在控制台中检索服务或工厂或任何角度(当应用程序已加载时)以使用这些DI组件。

1 个答案:

答案 0 :(得分:2)

尝试:

angular.element(document.body).injector().get('MyModel')

对于任何DOM元素,您都可以这样做:

  • angular.element(domElement).scope()获取元素的当前范围
  • angular.element(domElement).injector()获取当前的应用程序注入器
  • angular.element(domElement).controller()获取ng-controller个实例。