繁体   English   中英

AngularJS错误:无法读取未定义的属性“ get”

[英]AngularJS error: Cannot read property 'get' of undefined

我是AngularJS的新手,正在尝试通过$ http.get请求检索变量。 我已经设置了类似于我所看到的几个示例的代码,并且无法弄清为什么我收到“无法读取未定义的属性'get'的未定义”错误消息。 我在该网站上发现了类似的问题,但它们都指向各种格式问题。 我找不到一个,所以我希望有人可以指出我做错了什么。 以下是我使用$ 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依赖项作为PlayerServicegetLastName函数参数中的参数,并且您想使用注入的$http服务依赖项。 因此,在调用getLastName函数时,其参数值为$http它将优先于当前的本地函数变量并PlayerService$http服务的PlayerService 由于现在$http方法是未定义的,因此您将不会在其中定义get方法,这就是为什么会出现错误。

通过从getLastName函数参数中删除$http将解决您的问题。

function getLastName() { //<--removed $http from here
    return $http.get('/player/lastname').then(onFetchLastNameComplete, onError);
     function onFetchLastNameComplete(response) {
            return response;
     }
 }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM