Extjs显示/隐藏的正确方式

时间:2013-04-17 22:21:00

标签: javascript extjs extjs4

我对Extjs有点新意,我正在试图找出显示/隐藏元素的正确方法。

我有以下要素:

layout: 'card',
items: 
[
 {
  xtype: 'Panel1'
 },
 {
  xtype: 'Panel2'
 }
]

在我的控制器中,我有这些参考设置:

refs: [
{
 ref: 'p1',
 selector: 'Panel1'
},
{
 ref: 'p2',
 selector: 'Panel2'
}
],

每个面板底部都有一个表单和两个按钮。面板2隐藏在开头。现在我想显示Panel 2并隐藏Panel 1.首先我尝试了:

this.getp1().hide();
this.getp2().show();

......那没有做任何事。然后,我找到了this SO question并尝试了以下内容:

this.getp1().getEl().hide();
this.getp2().getEl().show();

部分工作,但它无法在Panel2中显示按钮。我是否应该获得每一个元素并且每个元素show()?我一定错过了什么。

2 个答案:

答案 0 :(得分:2)

尝试:

this.getP1().hide(); //the first letter should be uppercase
this.getP2().show();

答案 1 :(得分:2)

我的两个问题项的父面板是layout: 'card'。根据{{​​3}},一次只会显示一个面板。因此,显示其他项目的正确方法不是通过显示/隐藏功能,而是调用 PARENT_PANEL.getLayout().setActiveItem(n);这导致我的p2面板始终被隐藏而不受show()方法的影响。