Ответ 1
Вероятно, вы не закачали $http
сервис вашему контроллеру. Существует несколько способов сделать это.
Прочитайте эту ссылку о DI. Тогда это становится очень простым:
function MyController($scope, $http) {
// ... your code
}
У меня есть следующая функция Angular:
$scope.updateStatus = function(user) {
$http({
url: user.update_path,
method: "POST",
data: {user_id: user.id, draft: true}
});
};
Но всякий раз, когда эта функция вызывается, я получаю ReferenceError: $http is not defined
в консоли. Может кто-нибудь помочь мне понять, что я делаю неправильно здесь?
Вероятно, вы не закачали $http
сервис вашему контроллеру. Существует несколько способов сделать это.
Прочитайте эту ссылку о DI. Тогда это становится очень простым:
function MyController($scope, $http) {
// ... your code
}
Я столкнулся с той же проблемой, когда использовал
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
}]);
и он работал хорошо.
Чтобы завершить ответ Amit Garg, существует несколько способов встраивания зависимостей в AngularJS.
Вы также можете использовать $inject
, чтобы добавить зависимость:
var MyController = function($scope, $http) {
// ...
}
MyController.$inject = ['$scope', '$http'];