Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 未知提供程序:$httpProvider_Angularjs - Fatal编程技术网

Angularjs 未知提供程序:$httpProvider

Angularjs 未知提供程序:$httpProvider,angularjs,Angularjs,我对Angular中的依赖项注入有问题。我已经做了一个简单的例子来说明我得到的错误 function MyService($http) { this.doIt = function () { console.log("done"); } } var myModule = angular.module("myModule", []); myModule.service("myService", ['$http', MyService]); var prx = a

我对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。所以这一行应该换成下面这一行

var myModule = angular.module("myModule", []);

var myModule = angular.module("myModule", ['$http']);

在定义模块的行中,您需要告知此模块需要$http。所以这一行应该换成下面这一行

var myModule = angular.module("myModule", []);

var myModule = angular.module("myModule", ['$http']);

您可以使用monkey补丁将myModule的服务与ng模块一起使用


以下是

您可以通过monkey补丁将myModule的服务与ng module一起使用


这里是

Ok,使用RTFM技术解决了这个问题

这里的州

必须显式添加ng模块

所以我需要这样做

var prx = angular.injector(['ng','myModule']).get('myService');
让它工作。我已经更新了小提琴


谢谢你的帮助

Ok使用RTFM技术解决了这个问题

这里的州

必须显式添加ng模块

所以我需要这样做

var prx = angular.injector(['ng','myModule']).get('myService');
让它工作。我已经更新了小提琴


谢谢你的帮助

尝试此操作后,我现在无法实例化模块myModule,原因是:未能实例化模块$http,原因是:模块“$http”不可用!您要么拼错了模块名,要么忘记加载它。如果注册模块,请确保将依赖项指定为第二个参数。我创建了此代码示例,请查看它。为什么要在控制器外部调用服务?是的,我也可以让它在控制器中工作。我需要它在控制器外工作,所以我需要使用angular.injector afaik。正如我在原始帖子中所说,我有一个由第三方以Angular编写的新库,我需要在一个不使用Angular编写的旧应用程序中使用。尝试此操作后,我现在无法实例化模块myModule,原因是:未能实例化模块$http,原因是:模块“$http”不可用!您要么拼错了模块名,要么忘记加载它。如果注册模块,请确保将依赖项指定为第二个参数。我创建了此代码示例,请查看它。为什么要在控制器外部调用服务?是的,我也可以让它在控制器中工作。我需要它在控制器外工作,所以我需要使用angular.injector afaik。正如我在原始帖子中所说,我有一个由第三方以Angular编写的新库,我需要在一个不使用Angular编写的旧应用程序中使用。你在哪里引导Angular模块?你在哪里引导Angular模块?