Я пробовал другие ответы с той же проблемой, но никто из них не работал. У меня проблема, когда я звоню на свой завод, и я получаю 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
Ваш 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);
});