Błąd AngularJs ReferenceError: $ http nie jest zdefiniowany


199

Mam następującą funkcję kątową:

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

Ale gdy wywoływana jest ta funkcja, wchodzę do ReferenceError: $http is not definedkonsoli. Czy ktoś może mi pomóc zrozumieć, co robię źle tutaj?

Odpowiedzi:



81

Przeszedłem ten sam problem, kiedy korzystałem

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

Zmieniłem powyższy kod na podany poniżej. Pamiętaj, aby podać $ http (2 razy), jak podano poniżej.

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

i działało dobrze.


4

Aby wypełnić odpowiedź Amit Garg , istnieje kilka sposobów na wstrzyknięcie zależności w AngularJS.


Możesz także użyć $injectdo dodania zależności:

var MyController = function($scope, $http) {
  // ...
}
MyController.$inject = ['$scope', '$http'];
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.