Фабричный сервис AngularJS возвращает 'undefined'

0

Я пробовал другие ответы с той же проблемой, но никто из них не работал. У меня проблема, когда я звоню на свой завод, и я получаю undefined возвращение.

Контроллер (main.js):

app.controller('MainCtrl', ['$scope','beamAPI', function($scope, beamAPI){
    $scope.debug = 'Debug True';
    $scope.beamFollowers = 1;
    console.log(beamAPI('amtraxtge'));
}]);

Завод (beam.js):

app.factory('beamAPI', function($http) {
    var APIuser = {};
    APIuser = function(user) {
        $http.get('https://beam.pro/api/v1/channels/' + user).
        then(function(res){
            console.log(res.data);
            return res.data;
        });
    }
    return APIuser;
});

Консоль:

undefined       main.js:4
► Object        beam.js:6
Теги:

1 ответ

2

Ваш APIuser() ничего не возвращает. Вам нужно вернуть обещание и в контроллере дождаться обещания разрешить до назначения или регистрации любой из данных

На заводе

   APIuser = function(user) {
      // return $http promise
      return   $http.get('https://beam.pro/api/v1/channels/' + user).
         then(function(res){
             console.log('Factory log',res.data);
             return res.data;
         });
    }

В контроллере

beamAPI('amtraxtge').then(function(data){
     $scope.someProperty = data;
     console.log('Controller log',data);
});

Ещё вопросы

Сообщество Overcoder
Наверх
Меню