2016-03-05 116 views
0

帮助!In AngularJS =“无法读取属性”,然后“未定义”

我对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'; 
     } 
    ); 
} 

在我的控制,我试图调用服务...我不断收到当我通过一步“无法读取的未定义的属性‘然后’” 该服务,我期望的。

控制器功能(S)...

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" 

我该怎么做这个正常吗?

+0

您的'utilsService.isNullOrUndefined(response.data.version)'只是'response.data.version == null'。 –

+0

谢谢 - 我创建了一个函数来检查null或undefined – mortsahl

回答

1

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

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

谢谢...但我仍然没有得到它。我如何“正确地归还”承诺? – mortsahl

+0

我提供的代码... –

+0

是的,你做了 - 对不起,我错过了'返回'...其余代码与我的一样。再次谢谢你。 – mortsahl

相关问题