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