ExtJS 3.2.1注册与xtype一起使用的组件

| 在一个文件中,我正在创建一个带有两个选项卡的选项卡面板。我正在尝试注册要在单独文件中使用的组件。考虑以下:
Ext.ns(\'DVI\');

var backtestTab = {
    xtype: \'groupingstore\'
}

var intradayTab = {
    xtype: \'groupingstore\'
}

DVI.DviDashboard = new Ext.TabPanel({
    activeTab: 0,
    items: [backtestTab, intradayTab]
});

Ext.reg(\'dviDashboard\', DVI.DviDashboard);
假设此页面正确填充了带有分组存储的选项卡。在调用此脚本的页面中,代码如下:
var dashboard = {
    xtype: \'tabpanel\',
    id: \'port_dash-panel\',
    activeTab: 0,
    items:[{
        title: \'Dashboard\',
        xtype: \'dviDashboard\'
    }]
 };
返回以下错误:
b[d.xtype || e] is not a constructor
经研究,以上错误表明找不到或未定义组件。 但是请注意,以下代码可以正常工作并渲染选项卡:
var dashboard = {
    xtype: \'tabpanel\',
    id: \'port_dash-panel\',
    activeTab: 0,
    items:[DVI.DviDashboard]
 };
我只显示片段。仪表板选项卡面板在视口中呈现。 我想第一个问题是我是否可以通过这种方式注册组件?当然,第二个问题是,为什么这不起作用? :)     
已邀请:
        您正在尝试注册无法使用的实例化对象。 Ext.reg通常采用由Ext.extend方法创建的组件。
DVI.DviDashboard = Ext.extend(Ext.TabPanel,{
    initComponent: function(){

    Ext.apply(this, {
        activeTab: 0,
        items: [backtestTab, intradayTab]
    });

    DVI.DviDashboard.superclass.initComponent.call(this)   
}
});

Ext.reg(\'dviDashboard\', DVI.DviDashboard);
这是一个有关在Ext 3 *中编写类的旧的但有用的链接: http://blog.extjs.eu/know-how/writing-a-big-application-in-ext/     

要回复问题请先登录注册