2016-09-28 2 views
1

Я изучаю Angular JS и имею следующую фабрику. Данные возвращаются, как я могу видеть, когда они записываются на консоль.Eroor -TypeError: Не удается прочитать свойство 'then' of undefined

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(). Вам просто нужно вернуть обещание

getSelectOptions: function getSelectOptions() { 
     var apiRouteMember = []; 
     apiRouteMember.push(routeControllerURL + 'SelectOptionList') 
     apiRouteMember.push('APPLICATION_STATUS'); 

     // return this promise 
     return DatabaseService.getDataFromAPIRoute(apiRouteMember).then(function (response) { 
      return response.data; 
     }); 
    } 
} 
+0

Да, глупая ошибка - Спасибо, вы сильно меняете – mspelly

Смежные вопросы