Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Extjs4 Extjs 4 Designer 1.2选项卡面板_Extjs4_Tabpanel - Fatal编程技术网

Extjs4 Extjs 4 Designer 1.2选项卡面板

Extjs4 Extjs 4 Designer 1.2选项卡面板,extjs4,tabpanel,Extjs4,Tabpanel,我正在使用ExtJs 4.0 Ext Designer 1.2.0。 我有一个带有卡片布局的面板,其中包含一个按钮和一个选项卡btn和一个选项卡面板。每个选项卡都包含一个带有按钮的单独工具栏。添加选项卡btn将在关闭时添加选项卡2 我观察到,当我运行应用程序时,可以执行第二个选项卡按钮上的事件,但如果我关闭第二个选项卡并从add tab btn动态添加它,则不会执行该事件 有什么建议吗 下面是我的代码:MyPanel.js Ext.define('MyApp.view.MyPanel',

我正在使用ExtJs 4.0 Ext Designer 1.2.0。 我有一个带有卡片布局的面板,其中包含一个按钮和一个选项卡btn和一个选项卡面板。每个选项卡都包含一个带有按钮的单独工具栏。添加选项卡btn将在关闭时添加选项卡2

我观察到,当我运行应用程序时,可以执行第二个选项卡按钮上的事件,但如果我关闭第二个选项卡并从add tab btn动态添加它,则不会执行该事件

有什么建议吗

下面是我的代码:MyPanel.js

    Ext.define('MyApp.view.MyPanel', {
    extend: 'MyApp.view.ui.MyPanel',

    initComponent: function() {
        var me = this;
        me.callParent(arguments);

    me.down('button[id=addTab]').on('click',me.onAddTabClick,me);
    me.down('button[text=Second Button]').on('click',me.onSecondBtnClick,me);
    },

    onSecondBtnClick: function(){
        alert("Second Btn");
    },

    onAddTabClick: function(){

        var myTab = this.down('#myTabPanel').child('#tab2');
        if (myTab) {
            myTab.show();
        } else {
            this.down('#myTabPanel').add({
                    title    : 'Tab2',
                    activeTab: 0,
                    closable : true ,
                    id: 'tab2',
                    items: [{
                        xtype: 'panel',
                        id: 'tab2',
                        closable: true,
                        title: 'Tab 2',
                        dockedItems: [
                            {
                                xtype: 'toolbar',
                                height: 29,
                                id: 'Tab2Toolbar',
                                dock: 'top',
                                items: [
                                    {
                                        xtype: 'button',
                                        text: 'Second Button'
                                    }
                                ]
                            }
                        ]
                    }]  
                }).show();
        }
    }   
});

我猜,因为您使用的是initComponent而不是init,所以在首次加载MyPanel时,事件只应用一次。如果您改用init config,我相信无论按钮是否已被销毁,它都会正确地应用您的事件

简言之,请尝试删除initComponent块并替换为该块,因为init是设置事件的正确ExtJS 4方法:

init:函数{ 这是我的控制{ '按钮[id=addTab]':{ 单击:this.onAddTabClick }, '按钮[文本=第二个按钮]':{ 单击:this.onSecondBtnClick } }; } 这段代码来自一个控制器,而不是一个专门的面板,所以虽然我希望它能立即工作,但请记住它可能需要一些修改。别忘了你的逗号