ExtJs可替换项目

时间:2011-03-12 20:24:59

标签: javascript extjs

我想创建像这样的东西

Ext.onReady(function () {

    Ext.QuickTips.init();

    Ext.create('Ext.Viewport', {
        layout: 'fit',
        id: 'cmpWithReplacebleItems'
    });

    Ext.getCmp('cmpWithReplacebleItems').items = [new SomeComponent()];
});

SomeComponent的代码

SomeComponent = Ext.extend(Ext.Viewport, {
   layout: 'fit',
    items: [{
            xtype: 'panel',
            html: 'test',
            title: 'My Panel'
        }]
 });

正如您所见,我希望'cmpWithReplacebleItems'项目可以替换。但是当我尝试这个代码时,我在调整大小时会出现一些错误......

问题是......这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

构建组件后,您无法直接修改项目。您希望使用Ext.Container方法addremoveremoveAll来修改项目。

Ext.onReady(function () {

    Ext.QuickTips.init();

    Ext.create('Ext.Viewport', {
        layout: 'fit',
        id: 'cmpWithReplacebleItems'
    });

    var cmp = Ext.getCmp('cmpWithReplacebleItems');
    cmp.add(new SomeComponent());
    cmp.doLayout(); //important to layout again after adding/removing
});