簡體   English   中英

AngularJS工廠服務返回“未定義”

[英]AngularJS factory service returns 'undefined'

我已經嘗試過其他具有相同問題的答案,但是沒有一個起作用。 我在打電話給我的工廠時遇到問題,我得到了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()不返回任何內容。 您需要返回promise,並在控制器中等待promise解析,然后再分配或記錄任何數據

在工廠

   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);
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM