无法捕捉标签更改事件

时间:2015-01-09 08:28:19

标签: javascript events controller sencha-touch tabpanel

我使用按钮在标签之间移动。但为此,我必须记住用户的标签位置。因此,当用户离开屏幕并稍后返回时,我的按钮会继续工作。

tabchange事件应该是用于该事件的事件,但是我无法触发它。

查看:

Ext.define('MyApp1.view.Home',
{
    extend: 'Ext.form.Panel',

    requires:
    [
        'Ext.tab.Panel'
    ],

    xtype: 'home',

    config:
    {
        itemId: 'home',
        layout: 'fit',

        items:
        {
            xtype: 'tabpanel',
            tabBarPosition: 'top',
            height: 500,
            renderTo: document.body,
            listeners:
            {
                beforetabchange: function (tabs, newTab, oldTab)
                {
                    console.log('tab is going to change');
                },
                tabchange: function ()
                {
                    console.log('recorded tab change from listener');
                },
                change: function ()
                {
                    console.log('change of tab from listener');
                }
            },

            items:
            [
                {
                    title: 'one'
                },
                {
                    title: 'two'
                }
            ]
        }
    }
});

控制器:

Ext.define('MyApp1.controller.HomeController',
{
    extend: 'Ext.app.Controller',

    requires:
    [
        'MyApp1.view.Main'
    ],

    config:
    {
        refs:
        {
            home: 'home'
        },
        control:
        {
            home:
            {
                beforetabchange: 'onTabChange',
                tabchange: 'onTabChange',
                change: 'onTabChange'
            }
        }
    },

    init: function()
    {
        console.log('HomeController initialized');
    },

    onTabChange: function ()
    {
        console.log('active tab changed');
    }
});

所以当我点击标签按钮时,我会在日志中看到初始化文本,但没有任何标签更改事件。

2 个答案:

答案 0 :(得分:0)

原来我正在查看ExtJs 5文档,而不是Sencha 2.4.1文档...... 其中只有“活跃的变化”。事件

答案 1 :(得分:0)

首先,您似乎只能在tabBar

tabPanel上实现这些侦听器

仔细阅读了源代码,尽管它已被记录,但它似乎永远不会被解雇。 http://docs-origin.sencha.com/touch/2.4/2.4.1-apidocs/source/Bar3.html#Ext-tab-Bar-event-tabchange

我建议的是,当您指示挂钩面板上的activeitemchange事件或activetabchange(奇怪的是两次触发)事件tabbar为{{{ 1}}似乎也没有按预期工作。

https://fiddle.sencha.com/#fiddle/g44