198 votes

AngularJs ReferenceError: $ http n'est pas défini

J'ai la fonction angulaire suivante

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

Mais à chaque fois que cette fonction est appelée, j'obtiens ReferenceError: $ http n'est pas défini dans ma console. Quelqu'un peut-il m'aider à comprendre ce que je fais mal ici.

372voto

ŁukaszBachman Points 10541

Vous n'avez probablement pas injecté $http service sur votre contrôleur. Il y a plusieurs façons de le faire.

Veuillez lire cette référence à propos de DI . Ensuite, il devient très simple:

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

81voto

Amit Garg Points 1273

Je suis passé par le même problème quand j'utilisais

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

J'ai changé le code ci-dessus pour donné ci-dessous. N'oubliez pas d'inclure $ http (2 fois) comme indiqué ci-dessous.

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

et ça a bien marché.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X