遗憾的是,我无法找到有关按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正在寻找一个对象,但无法序列化?
我想要做的就是通过自定义按钮处理程序切换视图。
答案 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
...