首先,我的问题是我想知道 Ext.Define() 和 Ext.Create() 之间有什么不同,并且我想知道如何以正确的方式使用它们。
我查看了我的代码和许多 Extjs4 MVC 教程,
我在 Extjs4 MVC 项目中发现了很多 Ext.define() 方法。
我了解 Ext.define() 方法创建一个对象(CLASS)。
如果我只需要一个面板,我不会对面板进行任何继承,也不会在初始化后重用面板。
然后,我想我需要使用 Ext.create() 而不是 Ext.define()。
所以,我尝试更改我的代码@.@;
看来,原来是
Ext.Define("App.view.MyGrid",{
extend : 'Ext.grid.panel',
alias : 'widget.MyGrid',
initComponent : function(){
this.columns : [{ header: 'column' }];
this.store : Ext.create('Ext.data.ArrayStore', {})
}
});
我改为,
var myGrid = Ext.create('Ext.grid.Panel', {
layout: 'fit',
border: false,
columns: [{ header: 'column' }],
store: Ext.create('Ext.data.ArrayStore', {})
});
更改代码后,我遇到了无法在 Controller 中检索(grep)面板的问题,
在我以前这样做之前,
refs: [
{
ref: 'myGrid',
selector: '',
xtype: 'MyGrid', //view - alias
autoCreate: true
}
]
this.getMyGrid();
但更改后,我不知道如何在控制器中检索该面板。
在搜索网络以了解如何使用它时,我只是想知道'我对 Ext.define() 和 Ext.create() 的理解是否正确?为什么很多人使用 Ext.define() 方法,即使他们不再使用也不用于继承?'
请建议我了解 Extjs 的基础知识。
谢谢!