2015-04-15 30 views
0

我有此代碼(簡化):不能訪問內部子功能1 2的提供者在angularjs服務

angular 
    .module('app.core') 
    .factory('experienceDataservice', ['$http', 'Facebook', dataservice]); 

    function dataservice($http, Facebook){ 
    var service = { 
     getExperiences: getExperiences 
    }; 
    debugger; 
     function getExperiences() { 
     debugger; 
    } 
    } 

而問題是,在第一debugger;,所述dataservice塊內我可以訪問兩個$httpFacebook但在第二個debugger;getExperiences塊內,我只能訪問$http而不是Facebook

我不明白爲什麼會發生這種情況。 我試着讓代碼儘可能簡單。 如果需要更多的細節問,我會提供。

較大的片段:

(function(){ 
'use strict'; 

angular 
    .module('app.core') 
    .factory('experienceDataservice', ['$http', 'Facebook', dataservice]); 

    function dataservice($http, Facebook){ 
    var service = { 
     getExperiences: getExperiences 
    }; 
    debugger; 
     function getExperiences() { 
     debugger; 
     var access = ''; 
     var access = Facebook.getAccessToken(); //Does not work 
     var auth = 'Bearer' + access; 

    var req = 
    { 
     method: 'GET', 
     url: '/api/reviews?location=London&term=', 
     headers: 
     { 
      'Accept' : "application/json, text/javascript, */*; q=0.01", 
      'Authorization': auth 
     } 
    } 
    $http(req) // Does 'work' 
     .success(function(data, status, headers, config){debugger;}) 
     .error(function(data, status, headers, config){debugger;}); 

    } 
    return service; 
    } 
})(); 
+0

該代碼應該可以工作,您可以發佈更大的代碼段嗎? –

+0

當然,添加了整個文件 –

+0

在'Facebook.getAccessToken()'行我假設它給你一些錯誤,某些東西是未定義的。它是'Facebook'還是'gateAccessToken()'?基本上,當你做'console.log(Facebook)'時會發生什麼? –

回答

0

由於用戶Ben Black關於該問題的評論中指出的,我被迷惑Facebook調用一個不存在的功能,並在我的代碼中的另一個全球性的。

相關問題