2012-07-09 31 views
0

我对Sencha Architect以及EXTJs相当新颖。我创建了一个包含多个视图(2个容器)的应用程序。我正在尝试在点击container1中的按钮时切换视图。我有一个创建好的事件触发,我不知道如何切换到下一个视图?我已经试过:在Sencha Architect中更改视图

if(Ext.getCmp('mainView')) 
{ 
    Ext.Viewport.setActiveItem(Ext.getCmp('mainView')); 
} 
else 
{ 
    var view = Ext.create('Snapwire.view.mainView'); 
    Ext.Viewport.setActiveItem(view); 
} 

但这只是抛出一个控制台错误:

Uncaught TypeError: Object function() { 
      return this.constructor.apply(this, arguments); 
     } has no method 'setActiveItem' 

谢谢!

+0

你使用什么contatiner?还有哪个版本的sencha? 1或2? – 2012-07-09 20:24:17

+0

我正在使用Ext.container.Container,Sencha 2,Architect 2 – Michael 2012-07-09 21:05:06

+1

您使用卡片布局吗?那就是你应该使用的 – 2012-07-10 14:14:05

回答

0

Ext.getCmp('mainView')只有当你设置一个ID为它返回的主视图。在你的类定义,添加此配置:

id: 'mainView'

0

我没有这样说:

Ext.Viewport.remove(Ext.Viewport.getActiveItem(), true); 
Ext.Viewport.add([ 
{ xtype: 'searchwords' } 
]); 

这里,

xtype:searchwords 

被称为SearchWords的视图定义它为

alias: 'widget.searchwords' 

希望它能帮助你。

0

您可以尝试使用一卡的布局和改变与观点:

container.setActiveItem(1); 

container.setActiveItem(0); 

(使用前的所有容器必须添加setActiveItem,但将只显示活动项目)