ExtJS getCmp Panel by id不序列化?

时间:2013-01-31 10:10:10

标签: javascript extjs sencha-touch-2

遗憾的是,我无法找到有关按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正在寻找一个对象,但无法序列化?

我想要做的就是通过自定义按钮处理程序切换视图。

1 个答案:

答案 0 :(得分: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
    ...