Angularjs自定义服务变量未定义$ http成功

时间:2016-03-23 14:10:30

标签: javascript angularjs

我写了一个角度服务,它应该通过http加载客户详细信息并存储它们以供将来使用(以单例模式)。

但是,当http调用成功返回时,我想要注入数据的变量是未定义的,并且会引发错误。

以下是代码:

NBApp.service("serverDataService", ['$http', '$q', function ($http, $q) {
    var currentMemberDetails = [];

    this.currentMember = function (){
        if (this.currentMemberDetails.length>0)
            return this.currentMemberDetails[0];
        return null;
    };

    this.getMemberDetails = function (cardId) {
        //TBD - call members details web service
        var deferred = $q.defer();
        $http({
            method: 'GET',
            url: 'resources/customer.json'
        }).then
        (
            function success(response) {
                this.currentMemberDetails.push(response.data);
                deferred.resolve(data);
            },
            function failure(response) {
                deferred.reject(response);
            }
        );
        return deferred.promise;
    };
}]);

currentMemberDetails未定义,如chrome dev控制台所示。

1 个答案:

答案 0 :(得分:1)

而不是

this.currentMemberDetails.push(response.data);

使用

currentMemberDetails.push(response.data);