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 cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.