obenjiro
obenjiro

Reputation: 3750

ExtJs replacable items

I want to create something like this

Ext.onReady(function () {

    Ext.QuickTips.init();

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

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

code of SomeComponent

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

As you can see i want 'cmpWithReplacebleItems' items to be replaceble. But when i try this code i get some errors while resizing...

The question is.. what is the right way to do this?

Upvotes: 0

Views: 182

Answers (1)

Sean Adkinson
Sean Adkinson

Reputation: 8605

After a component is constructed, you can't modify the items directly like that. You want to use the Ext.Container methods add, remove, or removeAll to modify the items.

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
});

Upvotes: 2

Related Questions