我尝试创建基本控制器并在其中写入:
Ext.define('My.Users.controller.Role', {
extend : 'Ext.app.Controller',
stores : [
'Modules', 'ModulesList'
],
models : [
'Modules', 'ModulesList'
]
});
但是当我尝试为它们使用 getter 时(在这个基类中,或者在它的子类中,比如 My.Users.controller.Group),比如 getModulesStore() 或 getModulesListModel(),我有一个错误,它们不是函数. 在 Firebug 中,我可以看到子类和超类中没有这种方法。我该如何解决?
如何重现此错误的完整说明: 1) 从 Sencha 下载 ExtJS 4.1 GPL
2) 解压压缩包,进入目录 extjs-4.1.0/examples/app/feed-viewer/
3)在文件feed-viewer.html注释行<script type="text/javascript" src="all-classes.js"></script>
强制动态加载js文件:现在可以正常编辑项目文件的内容了。
4) 在文件夹 app/controller 中创建名为 Entities.js 的文件,代码如下:
Ext.define('FV.controller.Entities', {
extend: 'Ext.app.Controller',
models: ['Shared'],
stores: ['Shared']
});
5) 在文件 Articles.js 和 Feeds.js 中更改为“FV.controller.Entities”
6)在文件夹 app/model 和 app/store 创建文件 Shared.js 与内容
Ext.define('FV.model.Shared', {
extend: 'Ext.data.Model',
idProperty: 'id',
fields: [
{
name: 'id',
type: 'int'
},
{
name: 'title',
type: 'string'
}
]
});
对于模型和
Ext.define('FV.store.Shared', {
extend: 'Ext.data.Store',
model: 'FV.model.Shared',
proxy: {
type: 'ajax',
url: 'test.json',
reader: {
type: 'json',
root: 'item'
}
}
});
为商店。
7)最后,例如在Article.js的init方法中尝试console.log(this);在 Firebug 中,您不会获得 getSharedModel() 和 getSharedStore() 方法。
我已将样本上传到http://nekaka.com/d/W1_EOlnPST