chen
chen

Reputation: 79

Get my tabpanel component but cant use add to add a tab

i have a tabpanel in view makemoney.js. and i want write code in my controller addtab.js . but i have encounter a error in my chrome console.

and i have found that the Ext.ComponentQuery.query('itemId')[0] return type is component,but the tabpanel's add method must make the container.add is container.is it the cause.if right, what can i change

my makemoney.js code:

Ext.define('ylp2p.view.makemoney',{
extend: 'Ext.Panel',
xtype: 'makemoney',
requires: [
    'Ext.Toolbar',
    'Ext.tab.Panel'
],

config:{
    layout: 'vbox',
    items:[
        {
            xtype: 'toolbar',
            docked: 'top',
            title: '111'
        },
        {
            xtype: 'tabpanel',//-----here is my tappanel
            itemId: 'tabfirst',
            flex: 1,
            tabBar: {
                layout: {
                    pack: 'center'
                }
            }
        }
    ]
}
});

and my controller code:

Ext.define('ylp2p.controller.addtab',{
extend: 'Ext.app.Controller',
launch: function(){
    var moneytab = Ext.ComponentQuery.query('.makemoney #tabfirst')[0];
    //i think i get the component alerdy
    var myPanel = Ext.create('Ext.Panel', {
        html: 'This will be added to a Container'
    });
    //and write a panel
    moneytab.add([myPanel]);
    //make the panel into the tap.i dont why it not work
}
});

my console in chrome put an error:

Uncaught Error: [ERROR][Ext.Container#doAdd] Adding a card to a tab container without specifying any tab configuration

Upvotes: 0

Views: 1186

Answers (2)

Mohit Saxena
Mohit Saxena

Reputation: 1449

It will work

var moneytab = Ext.ComponentQuery.query('makemoney #tabfirst')[0];
    var myPanel = Ext.create('Ext.Panel', {
        html: 'This will be added to a Container',
        title: 'Yourtitle'
    });
    //and write a panel
    moneytab.add(myPanel);

Upvotes: 1

qmateub
qmateub

Reputation: 512

Your selector is not correct, that's the reason of the error.

var moneytab = Ext.ComponentQuery.query('.makemoney #tabfirst')[1];

moneytab = undefined;

Use this instead:

var moneytab = Ext.ComponentQuery.query('tabpanel #tabfirst')[0];

Upvotes: 1

Related Questions