ExtJs使用网格作为组件获取错误

时间:2011-11-22 14:10:00

标签: extjs4

我是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

1 个答案:

答案 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');