AngularJs ReferenceError: $ http não está definido

Eu tenho a seguinte function angular:

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

Mas sempre que essa function é chamada, estou recebendo ReferenceError: $http is not defined no meu console. Alguém pode me ajudar a entender o que estou fazendo de errado aqui?

Provavelmente você não injetou o serviço $http no seu controlador. Existem várias maneiras de fazer isso.

Por favor, leia esta referência sobre DI . Então fica muito simples:

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

Eu passei pelo mesmo problema quando estava usando

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

Eu mudei o código acima para dado abaixo. Lembre-se de include $ http (2 vezes) conforme indicado abaixo.

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

e funcionou bem.

Apenas para completar a resposta do Amit Garg , existem várias maneiras de injetar dependencies no AngularJS.


Você também pode usar $inject para adicionar uma dependência:

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