使用Sencha Touch,我在其构造函数中定义了一个带有Ajax调用的单例类。当我的应用程序启动时,我收到错误消息:无法从“Ext.Ajax.request”行调用未定义的方法“请求”。
如果我在构造函数中删除了Ajax调用,我的应用程序将加载而没有任何错误。
然后,如果我在我的应用程序启动后调用的另一个函数内部进行Ajax调用,则可以正常工作。所以我假设在调用构造函数时尚未加载Ext.Ajax。我尝试将使用参数添加到我的课程中,但它不起作用。
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
});
}
});
答案 0 :(得分:0)
您需要使用uses
来表示在创建此类之前需要requires
,而不是使用Ext.Ajax
。
requires: ['Ext.Ajax']
可能发生的事情是,在此过程中还需要其他内容Ext.Ajax
,因此loadData()
请求可以访问它而MyApp.utils.PostalCode
没有明确要求首先加载它。