AngularJs ReferenceError:$ http没有定义
我有以下的Angular函数:
$scope.updateStatus = function(user) { $http({ url: user.update_path, method: "POST", data: {user_id: user.id, draft: true} }); };
但是,每当这个函数被调用,我得到ReferenceError: $http is not defined
在我的控制台中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'];