在AngularJS ="无法读取属性'然后'未定义"

时间:2016-03-05 01:09:25

标签: angularjs service controller promise

帮助!

我对AngualarJS相对较新 - 善良! 我在服务中有一个功能......

function getVersion() {
    return $http.get('package.json').then(function success(response) {
            if (!utilsService.isNullOrUndefined(response.data.version)) {
                return response.data.version;  // this returns what is expected
            } else {
                return 'x.x.x';
            }
        }, function error(response) {
            return 'x.x.x';
        }
    );
}

在我的控制器中,我试图致电该服务......我一直在"无法阅读财产'然后'未定义" 当我逐步完成服务时,它就是我的期望。

控制器功能......

 var vm = this;
 vm.version =  '-.-.-';
 activate();
 function activate() {
     logger.info('Activated Login View');
     loginService.getVersion().then(function(data) {
         vm.version = data.version;
     });        
 }  Cannot read property 'then' of undefined"

我该如何正确地做到这一点?

1 个答案:

答案 0 :(得分:1)

您的getVersion()函数不返回任何内容,因此返回值为undefined。你应该正确地回复你的承诺:

return $http.get('package.json').then(function success(response) {