0

残念ながら、idで「Ext.tab.Panel」を取得するための有用な情報を見つけることができませんでした。ソースについてより具体的に説明します。使用

するパネルを定義しています。

Ext.define('MyMobileApp.view.Main', {
extend: 'Ext.tab.Panel',
xtype: 'main',
id: 'mainTabPanel',
....

このパネルに含まれている現在アクティブなビューで、ボタンを作成し、それにハンドラーを配置しました。

xtype: 'button',
text: 'Switch View',    
handler: function () {
    var main = Ext.getCmp('mainTabPanel'); //.getActiveTab();
    main.setActiveTab(Ext.getCmp('AnotherView'));
...

ここで、「AnotherView」は、パネルの一部でもあるビューのIDです。
しかし、「setActiveTab」を実行しようとするとエラーが発生します。

Uncaught TypeError: Object [object Object] has no method 'setActiveTab'

extjsがオブジェクトを見つけているように見えますが、シリアル化できませんか?

私がやりたいのは、カスタムボタンハンドラーでビューを切り替えることだけです。

4

1 に答える 1

1

問題は、タブパネルに機能がないことです'setActiveTab'

'setActiveItem'代わりに使用する必要があります。

Sencha Touch 2 Api: http: //docs.sencha.com/touch/2-1/#!/api/Ext.tab.Panel-method-setActiveItem

xtype: 'button',
text: 'Switch View',    
handler: function () {
    var main = Ext.getCmp('mainTabPanel'); //.getActiveTab();
    main.setActiveItem(Ext.getCmp('AnotherView'));
    //main.setActiveItem(1); //You can also set the new item with the index of it
    ...
于 2013-01-31T10:19:00.307 に答える