AngularJS error: Cannot read property 'get' of undefined
AngularJS error: Cannot read property 'get' of undefined
我是 AngularJS 的新手,正在尝试通过 $http.get 请求检索变量。我设置的代码类似于我见过的几个示例,但无法弄清楚为什么我会收到 "Cannot read property 'get' of undefined" 错误消息。我在这个网站上发现了类似的问题,但它们都指向各种格式问题。我找不到一个,所以我希望有人能够指出我做错了什么。下面是我使用 $http 的服务。
(function () {
angular
.module('golfleague.player')
.factory('PlayerService', ['$http', function($http){
var onError = function(data) {
data.errors = data;
};
function getLastName($http) {
return $http.get('/player/lastname').then(onFetchLastNameComplete, onError);
function onFetchLastNameComplete(response) {
return response;
}
}
return {
getLastName: getLastName
};
}]);
})();
你有 $http
依赖作为 PlayerService
的 getLastName
函数参数中的参数,你想使用注入的 $http
服务依赖。因此,在调用 getLastName
函数时,其参数值为 $http
,它优先使用当前局部函数变量并终止 PlayerService
的 $http
服务的存在。由于现在 $http
方法未定义,您将不会在其中定义 get
方法,这就是您收到错误的原因。
通过从 getLastName
函数参数中删除 $http
将解决您的问题。
function getLastName() { //<--removed $http from here
return $http.get('/player/lastname').then(onFetchLastNameComplete, onError);
function onFetchLastNameComplete(response) {
return response;
}
}
我是 AngularJS 的新手,正在尝试通过 $http.get 请求检索变量。我设置的代码类似于我见过的几个示例,但无法弄清楚为什么我会收到 "Cannot read property 'get' of undefined" 错误消息。我在这个网站上发现了类似的问题,但它们都指向各种格式问题。我找不到一个,所以我希望有人能够指出我做错了什么。下面是我使用 $http 的服务。
(function () {
angular
.module('golfleague.player')
.factory('PlayerService', ['$http', function($http){
var onError = function(data) {
data.errors = data;
};
function getLastName($http) {
return $http.get('/player/lastname').then(onFetchLastNameComplete, onError);
function onFetchLastNameComplete(response) {
return response;
}
}
return {
getLastName: getLastName
};
}]);
})();
你有 $http
依赖作为 PlayerService
的 getLastName
函数参数中的参数,你想使用注入的 $http
服务依赖。因此,在调用 getLastName
函数时,其参数值为 $http
,它优先使用当前局部函数变量并终止 PlayerService
的 $http
服务的存在。由于现在 $http
方法未定义,您将不会在其中定义 get
方法,这就是您收到错误的原因。
通过从 getLastName
函数参数中删除 $http
将解决您的问题。
function getLastName() { //<--removed $http from here
return $http.get('/player/lastname').then(onFetchLastNameComplete, onError);
function onFetchLastNameComplete(response) {
return response;
}
}