Javascript 从Sencha Touch类调用常规JS函数
有人能解释一下我怎么做吗?我正在尝试获取FB访问令牌并将其附加到存储配置中的URL字符串。因此Javascript 从Sencha Touch类调用常规JS函数,javascript,facebook,facebook-graph-api,extjs,sencha-touch,Javascript,Facebook,Facebook Graph Api,Extjs,Sencha Touch,有人能解释一下我怎么做吗?我正在尝试获取FB访问令牌并将其附加到存储配置中的URL字符串。因此 Ext.define('clubs.store.FacebookEvent', { extend: 'Ext.data.Store', requires: [ 'clubs.model.FacebookEvent' ], config: { autoLoad: true, model: 'clubs.model.FacebookEvent', //storeId: '
Ext.define('clubs.store.FacebookEvent', {
extend: 'Ext.data.Store',
requires: [
'clubs.model.FacebookEvent'
],
config: {
autoLoad: true,
model: 'clubs.model.FacebookEvent',
//storeId: 'FacebookEventStore',
proxy: {
type: 'jsonp',
url: 'https://graph.facebook.com/474381199275383/?fields=description,name&access_token=' + getAccessCode(),
reader: {
type: 'json'
//rootProperty: 'data'
}
}
}
});
function getAccessCode(){
FB.getLoginStatus(function(response) {
if (response.status === 'connected') {
var uid = response.authResponse.userID;
var accessToken = response.authResponse.accessToken;
console.log(accessToken);
}
});
return accessToken;
}
然而,我似乎总是在我的JS控制台得到这个错误
uncaught Error: The following classes are not declared even if their files have been loaded: 'club.store.FacebookEvent'. Please check the source code of their corresponding files for possible typos:
我走错方向了吗?任何帮助都将不胜感激 您只需更改
Ext.define('clubs.store.FacebookEvent',
到
事实上,您的应用程序名称是club,而不是clubs理想情况下,您应该将其放入controller或任何singleton实用程序类中,然后像这样访问它:
this.getApplication().getController('ControllerName').getAccessCode()
config : {
//..blah blah
},
getAccessCode : function(){
FB.getLoginStatus(function(response) {
if (response.status === 'connected') {
var uid = response.authResponse.userID;
var accessToken = response.authResponse.accessToken;
console.log(accessToken);
}
});
return accessToken;
}
或
但如果您想将其保留在此处,则必须定义如下函数:
this.getApplication().getController('ControllerName').getAccessCode()
config : {
//..blah blah
},
getAccessCode : function(){
FB.getLoginStatus(function(response) {
if (response.status === 'connected') {
var uid = response.authResponse.userID;
var accessToken = response.authResponse.accessToken;
console.log(accessToken);
}
});
return accessToken;
}
抱歉,这只是我的复制和粘贴中的一个错误,名称没有问题。当我删除该函数时,它将正确加载网页而不会出现该错误,但是当添加的函数存在时,就会出现问题。如果问题是在其中包含那个普通的JS函数,那么为什么不使用该方法创建一个新的singleton类呢?Ext.Loader只要求每个文件有一个类(或命名空间)。