凡是Cannot call method '' of undefined 这类错误大部分都可以参照下面的办法来解决
在st中有时候你会发现使用Ext.Ajax.request会出现一下错误:
Cannot call method 'request' of undefined
出现以上错误的原因是Ext.Ajax这个组件没有被注册
解决方案:
1.一般来说你只要在控制层或者app.js注册引用了model、store,st就会自动注册主键
代码如下:
/*
*列表控制
*/
Ext.define('app.controller.List', {
extend: 'Ext.app.Controller',
config: {
models: ['Blog', 'Quiz'],
stores: ['BlogList', 'QuizList'],
views: ['list.Home'],
refs: {
listHome: 'listHome'
},
control: {
listHome: {
itemtap: function (list, index, target, record, e) {
this.redirectTo('redirec/' + record.get('redirect'));
util.storeLoad(record.get('store'));
}
}
}
}
});
2.如果不使用model、store
可以直接注册组件
Ext.application({
name: 'app',
appFolder: 'app',
controllers: ['Main', 'Panel', 'Layout', 'List'],
requires: ['Ext.Ajax'],
launch: function () {
util.inIt();
}
});
3.通过Ext.require方法注册
Ext.require('Ext.Ajax', function () {
Ext.Ajax.request({
//代码省略
});