无法访问 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
块中我可以访问 $http
和 Facebook
但在第二个 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
和另一个全局函数,从而调用了一个不存在的函数。
我有这个代码(简化版):
angular
.module('app.core')
.factory('experienceDataservice', ['$http', 'Facebook', dataservice]);
function dataservice($http, Facebook){
var service = {
getExperiences: getExperiences
};
debugger;
function getExperiences() {
debugger;
}
}
问题是在第一个 debugger;
块中,在 dataservice
块中我可以访问 $http
和 Facebook
但在第二个 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
和另一个全局函数,从而调用了一个不存在的函数。