我有以下Angular函数:
$scope.updateStatus = function(user) {
$http({
url: user.update_path,
method: "POST",
data: {user_id: user.id, draft: true}
});
};
但是无论何时调用此函数,我都会在控制台中获得 ReferenceError: $http is not defined
。有人能帮我理解我在做错了吗?
答案 0 :(得分:369)
可能您没有向控制器注入$http
服务。有几种方法可以做到这一点。
请阅读this reference about DI。然后它变得非常简单:
function MyController($scope, $http) {
// ... your code
}
答案 1 :(得分:80)
我在使用
时遇到了同样的问题 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
}]);
它运作良好。
答案 2 :(得分:4)
要完成Amit Garg answer,有几种方法可以在AngularJS中注入依赖项。
您还可以使用$inject
添加依赖项:
var MyController = function($scope, $http) {
// ...
}
MyController.$inject = ['$scope', '$http'];