AngularJs ReferenceError:$ http未定义

时间:2012-12-07 08:00:26

标签: angularjs javascript-framework angular-http

我有以下Angular函数:

$scope.updateStatus = function(user) {    
    $http({
        url: user.update_path, 
        method: "POST",
        data: {user_id: user.id, draft: true}
    });
};

但是无论何时调用此函数,我都会在控制台中获得 ReferenceError: $http is not defined 。有人能帮我理解我在做错了吗?

3 个答案:

答案 0 :(得分:369)

可能您没有向控制器注入$http服务。有几种方法可以做到这一点。

请阅读this reference about DI。然后它变得非常简单:

function MyController($scope, $http) {
   // ... your code
}

答案 1 :(得分:80)

我在使用

时遇到了同样的问题
    myApp.controller('mainController', ['$scope', function($scope,) {
        //$http was not working in this
    }]);

我已将上面的代码更改为以下内容。请记住包含$ http(2次),如下所示。

 myApp.controller('mainController', ['$scope','$http', function($scope,$http) {
      //$http is working in this
 }]);

它运作良好。

答案 2 :(得分:4)

要完成Amit Garg answer,有几种方法可以在AngularJS中注入依赖项。

您还可以使用$inject添加依赖项:

var MyController = function($scope, $http) {
  // ...
}
MyController.$inject = ['$scope', '$http'];