201

次のAngular関数があります:

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

しかし、この関数が呼び出されるたびReferenceError: $http is not definedに、コンソールに入ります。ここで私が間違っていることを誰かが理解するのを手伝ってくれますか?

4

3 に答える 3

376

おそらく$http、コントローラーにサービスを注入していません。それを行うにはいくつかの方法があります。

DIについてはこのリファレンスをお読みください。それからそれは非常に簡単になります:

function MyController($scope, $http) {
   // ... your code
}
于 2012-12-07T08:12:09.550 に答える
82

私は使用していたときに同じ問題を経験しました

    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
 }]);

そしてそれはうまくいきました。

于 2014-03-02T08:58:20.983 に答える
4

Amit Garg answerを完成させるために、AngularJS に依存関係を注入する方法がいくつかあります。


$injectを使用して依存関係を追加することもできます。

var MyController = function($scope, $http) {
  // ...
}
MyController.$inject = ['$scope', '$http'];
于 2016-10-20T09:40:26.047 に答える