AngularJs参考错误:$http未定义。

202

我有以下的 Angular 函数:

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

但每当调用这个函数时,我的控制台会显示ReferenceError: $http未定义。有谁能帮我理解我在这里做错了什么吗?

3个回答

377

可能你还没有将$http服务注入到你的控制器中。有几种方法可以做到这一点。

请阅读关于DI的参考文献,然后就非常简单了:

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

18
谢谢!我想知道为什么Angular官方文档(http://docs.angularjs.org/tutorial/step_05)会有这个错误。 - Anurag

83

当我使用时,我也遇到了同样的问题。

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

我已将上述代码更改为下面给出的代码。请记得像下面给出的那样包含 $http(两次)。

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

它已经运作良好。


4

补充Amit Garg的回答,在AngularJS中有几种方法可以注入依赖项。


你还可以使用$inject 添加一个依赖项:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接