我在Angular中遇到依赖注入问题。我做了一个简单的例子来演示我得到的错误
function MyService($http) {
this.doIt = function () {
console.log("done");
}
}
var myModule = angular.module("myModule", []);
myModule.service("myService", ['$http', MyService]);
var prx = angular.injector(['myModule']).get('myService');
prx.doIt();
我得到的错误是“未知提供商:$ httpProvider< - $ http< - myService”
所以我假设它与注射有关。
在我的情况下,我需要使用角度注入器,因为我正在尝试将新的客户端库与未使用Angular编写的旧应用程序集成。
答案 0 :(得分:4)
您可以使用myModule
模块进行猴子修补以使用ng
的服务。
var prx = angular.injector(['myModule', 'ng']).get('myService');
答案 1 :(得分:1)
好的,用RTFM技术搞定了。
https://docs.angularjs.org/api/ng/function/angular.injector
在这里陈述
必须明确添加ng模块。
所以我需要这样做
var prx = angular.injector(['ng','myModule']).get('myService');
让它发挥作用。我已经更新了小提琴。
感谢您的帮助!
答案 2 :(得分:0)
您定义模块的行,您需要告诉该模块需要$ http。因此,此行应替换为下面的行。
var myModule = angular.module("myModule", []);
var myModule = angular.module("myModule", ['$http']);