在单例类构造函数中进行Ajax调用
使用Sencha Touch,我定义了一个单例类,在其构造函数中使用Ajax调用。当我的应用程序启动时,我收到错误消息:无法从带有“Ext.Ajax.request”的行调用未定义的方法“request” 如果我删除构造函数中的Ajax调用,我的应用程序将无误加载 然后,如果我在应用程序启动后调用的另一个函数中进行Ajax调用,它就会正常工作。因此,我假设调用构造函数时Ext.Ajax尚未加载。我试图将uses参数添加到我的类中,但它不起作用在单例类构造函数中进行Ajax调用,ajax,extjs,constructor,singleton,sencha-touch-2,Ajax,Extjs,Constructor,Singleton,Sencha Touch 2,使用Sencha Touch,我定义了一个单例类,在其构造函数中使用Ajax调用。当我的应用程序启动时,我收到错误消息:无法从带有“Ext.Ajax.request”的行调用未定义的方法“request” 如果我删除构造函数中的Ajax调用,我的应用程序将无误加载 然后,如果我在应用程序启动后调用的另一个函数中进行Ajax调用,它就会正常工作。因此,我假设调用构造函数时Ext.Ajax尚未加载。我试图将uses参数添加到我的类中,但它不起作用 Ext.define('MyApp.utils.Po
Ext.define('MyApp.utils.PostalCode', {
singleton: true,
config : {
postalCodesHashMap : null,
},
uses : 'Ext.Ajax',
constructor: function(config) {
this.initConfig(config);
Ext.Ajax.request({
//will not work
});
},
loadData : function() {
Ext.Ajax.request({
//will work
});
}
});
不要使用
uses
,而是要使用requires
来指示在创建此类之前需要Ext.Ajax
requires: ['Ext.Ajax']
可能发生的情况是,沿途还需要
Ext.Ajax
,因此loadData()
请求可以访问它,而不需要MyApp.utils.PostalCode
明确要求先加载它。@jprofitt:它很有效,谢谢!你可以回答,我会选择它作为正确的答案。