AngularJs ReferenceError: $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 в консоли. Может кто-нибудь помочь мне понять, что я делаю неправильно здесь?

Ответ 1

Вероятно, вы не закачали $http сервис вашему контроллеру. Существует несколько способов сделать это.

Прочитайте эту ссылку о DI. Тогда это становится очень простым:

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

Ответ 2

Я столкнулся с той же проблемой, когда использовал

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

и он работал хорошо.

Ответ 3

Чтобы завершить ответ Amit Garg, существует несколько способов встраивания зависимостей в AngularJS.


Вы также можете использовать $inject, чтобы добавить зависимость:

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