自定义共享组件

时间:2015-01-10 01:49:56

标签: extjs extjs4 extjs3

Ext.define('RevenuePanel', {     extend: 'Ext.panel.Panel',
items: [ 
..........        
Ext.create('Ext.button.Button', {text: 'Button'})     ] 
}); 

在这种情况下,我相信items属性被复制到类的原型中 允许面板在多个容器中具有自定义行为的良好编程习惯是什么?它将在应用程序中使用它?

我们在Ext3.4x上

1 个答案:

答案 0 :(得分:2)

我假设您只想添加更多项目,而不会覆盖预定义。

Ext.define('RevenuePanel', {     
    extend: 'Ext.panel.Panel',
    initComponent: function(){
        var me = this,
            newItems = me.items,
            defaultItems, items;
        // apply your default items
        defaultItems = [{xtype:'button', text:'Button'}];
        // check if there are new items defined for this instance
        if(typeof newItems != 'undefined') {
            items = defaultItems.concat((newItems instanceof Array ) ? newItems : [newItems]);
        } else {
            items = defaultItems;
        }
        // override the items
        me.items = items;

        me.callParent(arguments);
    }

});