我有一个角色的应用程序。我启动它,然后打开chrome dev工具控制台并开始输入。
我想做一些$injector.get(...)
,在控制台中使用我的服务和工厂。但我不在DI语境中,所以...... $injector
与angular.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组件。
答案 0 :(得分:2)
尝试:
angular.element(document.body).injector().get('MyModel')
对于任何DOM元素,您都可以这样做:
angular.element(domElement).scope()
获取元素的当前范围angular.element(domElement).injector()
获取当前的应用程序注入器angular.element(domElement).controller()
获取ng-controller
个实例。