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'
        }
    }
});

controller.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

タブで「タップ」イベントをリッスンする代わりに、タブパネル自体で「activeitemchange」をリッスンする必要があります。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」の名前を変更する方法です。

@Bork: ありがとう!.

于 2012-05-09T18:13:35.850 に答える
0

この構成をタブ パネルに追加することで、タブ バー ボタンに ID を割り当てることができます。

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