想要在菜单点击后加载容器

时间:2013-10-15 10:28:25

标签: extjs

我有一个视口:

Ext.define('MyApp.view.MyViewport', {
extend: 'Ext.container.Viewport',

layout: {
    type: 'fit'
},

initComponent: function() {
    var me = this;

    Ext.applyIf(me, {
        items: [
            {
                xtype: 'panel',
                layout: {
                    type: 'fit'
                },
                title: 'Just4Rental',
                dockedItems: [
                    {
                        xtype: 'toolbar',
                        dock: 'top',
                        items: [
                            {
                                xtype: 'splitbutton',
                                text: 'Afdeling',
                                menu: {
                                    xtype: 'menu',
                                    minWidth: 200,
                                    width: 200,
                                    items: [
                                        {
                                            xtype: 'menuitem',
                                            text: 'Accountmanager',
                                            listeners: {
                                                click: {
                                                    fn: me.onMenuitemClick,
                                                    scope: me
                                                }
                                            }
                                        },
                                        {
                                            xtype: 'menuitem',
                                            text: 'Planning'
                                        },
                                        {
                                            xtype: 'menuitem',
                                            text: 'Magazijn'
                                        },
                                        {
                                            xtype: 'menuitem',
                                            text: 'TD'
                                        },
                                        {
                                            xtype: 'menuitem',
                                            text: 'HRM'
                                        },
                                        {
                                            xtype: 'menuitem',
                                            width: 250,
                                            text: 'Wagenpark'
                                        },
                                        {
                                            xtype: 'menuitem',
                                            text: 'Voorbereiding'
                                        },
                                        {
                                            xtype: 'menuitem',
                                            text: 'Locaties'
                                        },
                                        {
                                            xtype: 'menuitem',
                                            text: 'Administratie'
                                        }
                                    ]
                                }
                            },
                            {
                                xtype: 'tbfill'
                            },
                            {
                                xtype: 'tbtext',
                                text: 'Accountmanager'
                            }
                        ]
                    }
                ],
                items: [
                    {
                        xtype: 'container',
                       id: 'inhoudAfdeling',
                        layout: {
                            type: 'fit'
                        }
                    }
                ]
            }
        ]
    });

    me.callParent(arguments);
},

onMenuitemClick: function(item, e, eOpts) {
    Ext.widget('accountManager').renderTo('inhoudAfdeling');
}
});

当我点击菜单项时,对于这种情况,请在accountmanager:

 xtype: 'menuitem',
 text: 'Accountmanager',
 listeners: {
   click: {
    fn: me.onMenuitemClick,
    scope: me
           }
             }

我想在'inhoudAfdeling'容器中加载一个不同的容器。我要加载的是这个容器:

Ext.define('MyApp.view.accountManager', {
extend: 'Ext.container.Container',
alias: 'widget.accountManager',

id: 'Accountmanager',
layout: {
    align: 'stretch',
    type: 'vbox'
},

initComponent: function() {
    var me = this;

    Ext.applyIf(me, {
        items: [
            {
                xtype: 'container',
                flex: 1,
                id: 'bovenBox',
                layout: {
                    align: 'stretch',
                    type: 'hbox'
                },
           ........

我试过Ext.widget('accountManager')。renderTo('inhoudAfdeling')但是没有用。有人有想法吗?

1 个答案:

答案 0 :(得分:3)

renderTo用于将组件呈现给现有DOM元素。正如文档中所提到的,它应该/不能用于将组件添加到另一个组件。

尝试在要添加内容的容器上使用add

onMenuitemClick: function(item, e, eOpts) {
    // explicit instantiation
    Ext.getCmp('inhoudAfdeling').add(Ext.widget('accountManager'));
    // implicit instantiation
    Ext.getCmp('inhoudAfdeling').add({xtype: 'accountManager'});
}