J'ai la fonction Angular 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, je reçois ReferenceError: $http is not defined
dans ma console. Est-ce que quelqu'un peut m'aider à comprendre ce que je fais mal ici?
Vous n'avez probablement pas injecté le service $http
à votre contrôleur. Il y a plusieurs façons de le faire.
Veuillez lire cette référence à propos de DI . Ensuite, cela devient très simple:
function MyController($scope, $http) {
// ... your code
}
J'ai vécu 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 à 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 cela a bien fonctionné.
Juste pour terminer réponse Amit Garg , il existe plusieurs façons d’injecter des dépendances dans AngularJS.
Vous pouvez également utiliser $inject
pour ajouter une dépendance:
_var MyController = function($scope, $http) {
// ...
}
MyController.$inject = ['$scope', '$http'];
_