AngularJs ReferenceError: $ http không được xác định


199

Tôi có chức năng Angular sau:

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

Nhưng bất cứ khi nào chức năng này được gọi, tôi sẽ nhận được ReferenceError: $http is not definedtrong bảng điều khiển của mình. Ai đó có thể giúp tôi hiểu những gì tôi đang làm sai ở đây?

Câu trả lời:



81

Tôi đã trải qua vấn đề tương tự khi tôi đang sử dụng

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

Tôi đã thay đổi mã trên để đưa ra dưới đây. Hãy nhớ bao gồm $ http (2 lần) như được đưa ra dưới đây.

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

và nó đã hoạt động tốt.


4

Chỉ cần hoàn thành câu trả lời của Amit Garg , có một số cách để tiêm phụ thuộc vào AngularJS.


Bạn cũng có thể sử dụng $injectđể thêm một phụ thuộc:

var MyController = function($scope, $http) {
  // ...
}
MyController.$inject = ['$scope', '$http'];
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookie và Chính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.