我是ExtJs的新手,我正在尝试使用网格作为组件,但是当我实例化它时似乎没有初始化。
它抛出了这个错误:
c is not a constructor
http://localhost/xv1/extjs/ext-debug.js
Line 6456
此行发生错误:
var gridVoucher = Ext.create('accountant.gridVoucher');
以下是完整的代码:http://pastebin.com/42sfGVvU
答案 0 :(得分:0)
正如其他人提到的那样,你需要initComponent。此外,您实现的网格扩展与我的不同。例如,我从未在生活中使用Ext.apply
。我不确定你做错了,或者只是一种正确但不同的方式,但这是我使用的方法。
Ext.define('App.teams',
{
extend: 'App.gridBaseClass',//custom base class extends 'Ext.grid.Panel'
initComponent: function(config)
{
this.callParent(arguments);
},
property:'default'
constructor : function(config)
{
config.columns = [...];
config.title = 'my title';
if(!config.width)config.width=300;//something we are allowed to override
//set other configs as needed, whatever you would send to grid.Panel
//example of setting global data from config input
if(config.property) this.property=config.property;
this.callParent(arguments);
}
});
需要注意的重要事项是callParent和initComponent。我希望这对比较不同的方法有帮助,或者至少是有趣的。
编辑:只是为了确认,通过这种方法,我们可以使用与您完全相同的方式创建网格 简单地
var grid = Ext.create('App.teams');