Pie*_*per 9 model extjs view extjs4
Ext.define('DigitalPaper.controller.Documents', {
extend: 'Ext.app.Controller',
views: ['Documents'],
stores: ['Documents'],
models: ['Documents'],
init: function() {
console.log('[OK] Init Controller: Documents');
}
});
Run Code Online (Sandbox Code Playgroud)
获取此控制器的模型或视图的功能是什么?我试过了
Ext.getModel('Documents');
this.getModel('Documents');
this.getModel();
this.getDocumentsModel();
Run Code Online (Sandbox Code Playgroud)
有什么建议?
解决方案:
在Controller中,可以使用View的引用:
refs: [{
ref: 'viewDocuments', // will be create the method this.getViewDocuments();
selector: 'Documents'
}],
Run Code Online (Sandbox Code Playgroud)
所以你可以用这个获得View:
this.getViewDocuments();
Run Code Online (Sandbox Code Playgroud)
Ext控制器非常奇怪,因为无论您有多少相关的视图实例,都有一个给定控制器的单个实例.在大多数MVC或MVP系统中,每个视图实例都有一个控制器实例.
如果您计划使用多个视图实例,则不应在控制器中保留对这些视图的引用.
你可能想要查看Deft的ExtJs的MVC扩展,每个视图实例有一个控制器实例(加上依赖注入):
无论如何,controller.getView()返回对视图CLASS的引用,而不是对象实例.与getModel()相同.getStore()返回商店实例.
在您的控制器中,您可以执行以下操作:
this.viewInstance = this.getDocumentsView().create();
Run Code Online (Sandbox Code Playgroud)
我还建议以单数形式命名您的模型.它不是文件.这是一份文件.
| 归档时间: |
|
| 查看次数: |
19933 次 |
| 最近记录: |