在Sencha的边框布局API中,它说:
ExtJS 4.0 +中没有BorderLayout.Region类
我在各种博客上找到的用于访问中心面板的内容是:
var viewPort = Ext.ComponentQuery.query('viewport')[0];
var centerR = viewPort.layout.centerRegion;
再次对文档,我看到centerRegion
是一个私有函数(为什么?),我不关心那些,为了将来的证明。此外,没有westRegion
,northRegion
等......
如何获得这些物品?
我当然可以获取区域内的项目:各种面板等,但我希望完全控制保存边框布局的视口。
这就是我现在正在做的事情:
var viewPort = Ext.ComponentQuery.query('viewport')[0];
var view = Ext.widget('my-new-tab-panel');
viewPort.layout.centerRegion.removeAll();
viewPort.layout.centerRegion.add(view);
有更好的方法吗?
答案 0 :(得分:2)
通常,我为每个必须使用的容器设置一个id。所以,我的中心区域将有一个id,我将使用 Ext.getCmp()函数来获取它。
否则,要访问视口项,您可以执行以下操作:
var viewPort = Ext.ComponentQuery.query('viewport')[0];
var view = Ext.widget('my-new-tab-panel');
viewPort.items.items[0].removeAll();
viewPort.items.items[0].add(view);
如果您已将中心区域定义为视口的第一项,那么上面的代码就可以了,但如果您已将其定义为第三项或第四项,那么您必须根据您的位置更改索引region(viewPort.items [3]或viewPort.items [4]等)。
另一种方法是使用查询选择器:
var cr = viewPort.down('panel[region=center]');
cr.removeAll();
cr.add(view);
但是,按照这种方式,您必须查询精确的xtype(在本例中为面板)。
无论如何,我认为最好的方法是为每个地区使用ID。