未知提供商:$ httpProvider< - $ http

时间:2016-01-13 06:33:46

标签: angularjs

我在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编写的旧应用程序集成。

3 个答案:

答案 0 :(得分:4)

您可以使用myModule模块进行猴子修补以使用ng的服务。

var prx = angular.injector(['myModule', 'ng']).get('myService');

这里是the worked fiddle

答案 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']);