2016-09-28 103 views
1

我正在学习Angular JS并拥有以下工厂。我可以在将数据记录到控制台时看到数据。Eroor -TypeError:无法读取未定义的属性'then'

app.factory('SelectOptionFactory', ['$http', '$q', 'DatabaseService', function ($http, $q, DatabaseService) { 
 

 
    'use strict'; 
 

 
    //variables 
 

 
    var routeControllerURL = 'SelectOption/'; 
 

 
    return { 
 
     getSelectOptions: function getSelectOptions() { 
 
      var apiRouteMember = []; 
 
      apiRouteMember.push(routeControllerURL + 'SelectOptionList') 
 
      apiRouteMember.push('APPLICATION_STATUS'); 
 
      DatabaseService.getDataFromAPIRoute(apiRouteMember).then(function (response) { 
 
       return response.data; 
 
      }); 
 
     } 
 
    } 
 
}]);

然后我控制器具有以下功能,被称为上点击一个按钮,我得到这个错误:

angular.js:13920 TypeError: Cannot read property 'then' of undefined 
    at m.$scope.addInventoryApplicationDetails (Inventory_Controller.js:228) 

$scope.addInventoryApplicationDetails = function() { 
 
     $scope.applicationStatus = []; 
 

 
     SelectOptionFactory.getSelectOptions().then(function (data) { 
 
      $scope.applicationStatus = data; 
 
     }).catch(function() { 
 
      $scope.error = 'unable to get the data'; 
 
     }); 
 
    };

什么我做错了,因为.then()方法不会返回通过successCallback,errorCallback的返回值解决或拒绝的新承诺吗?

回答

1

没有什么是从getSelectOptions()返回。你只需要返回承诺

​​
+0

是的愚蠢的错误 - 谢谢各有不同 – mspelly

相关问题