3

我在 Sencha Touch 2 中有一个控制器和一个 TabPanel,我想在 TabPanel 上点击一个元素时调用一个函数:

TabPanel.js

Ext.define('app.view.principalTabPanel', {
    extend: 'Ext.tab.Panel',
    alias: 'widget.ptabpanel',
    config: {
        ui: 'light',
        items: [
            {
                xtype: 'container',
                itemId: 'idContnr',
                title: 'tap Me!',
                iconCls: 'bookmarks'
            }
        ],
        tabBar: {
            docked: 'bottom',
            ui: 'light'
        }
    }
});

控制器.js

Ext.define('app.controller.mainController', {
    extend: 'Ext.app.Controller',
    config: {
        control: {
            "ptabpanel #idContnr": {
                tap: 'takePhoto'
            }
        }
    },
    takePhoto: function() {
        console.log('toma foto!'); // Not Working :(
    }
});
4

3 回答 3

2

与其在选项卡上收听“点击”事件,不如在选项卡本身上收听“活动项目变化”。请参阅http://docs.sencha.com/touch/2-0/#!/api/Ext.tab.Panel-event-activeitemchange

于 2012-05-09T16:43:24.110 回答
1

它在侦听/查询 Sencha "ext-tab-2" 生成的 html-id 时起作用。

例如:

config: {
    control: {
        "ptabpanel #ext-tab-2": {
            tap: 'onButtonTap'
        }
    }
},

但现在的问题是如何更改 Sencha Touch 2 生成的“ext-tab-2”名称

@Borck:谢谢!

于 2012-05-09T18:13:35.850 回答
0

您可以通过将此配置添加到选项卡面板来为选项卡栏按钮分配 ID:

tabBar: {
  id: 'myTabBar',
  items:[
    {
      id: 'myFirstTab'
    },
    {
      id: 'mySecondTab'
    },
    ...
   ]
 }
于 2012-05-16T18:46:25.167 回答