无法访问 angularjs 服务中子功能内的 2 个提供程序中的 1 个

Cannot access 1 of 2 providers inside subfunction in angularjs service

我有这个代码(简化版):

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

正如用户 Ben Black 在对该问题的评论中指出的那样,我在代码中混淆了 Facebook 和另一个全局函数,从而调用了一个不存在的函数。