我已经阅读了所有帖子,其中人们得到这个问题,其中$http不是一个函数,并且看起来大多数情况下它是由于以错误的顺序进行注入.
我的模块定义如下所示:
angular.module("app",[]).controller("appCtrl",['$scope','$http',function ($scope,$http) { ... $scope.makeCall= function ($http) { console.log("HERE"); $http({ method: 'GET',url: <url }). then(function (response) { console.log(response.data); return response.data; },function (response) { }); }; } ])
任何建议将不胜感激.
解决方法
从makeCall函数中删除$http参数,这会消除通过控制器注入的$http依赖性的存在.基本上,当您在函数上添加它时,它被设置为undefined
$scope.makeCall= function () { //<-- removed $http dependency from here console.log("HERE"); $http({ method: 'GET',url: 'url' }) .then(function (response) { console.log(response.data); return response.data; },function (response) { } ); };