我想改变 itemtap 的视图,我已经做到了
itemtap : function(list, index, target, record, event) {
var id = index + 1;
if(id == '1'){
Ext.Viewport.remove(Ext.Viewport.getActiveItem(), true);
Ext.Viewport.add([
{ xtype: 'publishedword' }
]);
}
现在,我正在尝试将它应用到如下图所示的视图中,其中第一个视图包含一个带有填充项目的菜单,现在单击那些我想在主页中打开新视图替换主页视图的项目。我怎样才能做到这一点?
下图的容器:
Ext.define('myprj.view.Main', {
extend: 'Ext.Container',
alias: 'widget.mainmenuview',
config: {
width: 710,
margin: '10px auto 0',
layout: {
type: 'hbox'
},
defaults: {
flex: 1
},
activeItem: 1,
items: [{
flex: 1,
xtype: 'container',
cls:'wholeMenuWrap',
margin: '65px 0 0 0',
width: 170,
layout: 'vbox',
items: [
{
xtype:'menupage',
cls: 'menuPage',
docked: 'left',
},
{
xtype:'homepage',
cls: 'homePage',
//docked: 'center',
},
{
xtype:'categorypage',
cls: 'categoryPage',
docked: 'right',
},]
}]
}
});
现在在上面的代码中,我只想更改主页并显示关于 itemtap 的另一个视图。![firstscreen][1] 当我在这种情况下使用上面的代码时,整个视图都被改变了,但我只想改变关于 itemTap 的第二个视图。谢谢你。
已编辑
if(id == '1'){
console.log("Value of Click--"+id);
var publishedword = { xtype: 'publishedword' };
// I am assuming active item is container, here i am getting Container object
var outerContainer = Ext.Viewport.getActiveItem(1);
// removing the second item (index start with 0)
outerContainer.down('panel').removeAt(1);
// replacing second item into publishedword
outerContainer.down('panel').insert(1, publishedword);
outerContainer.getAt(1).setActiveItem(publishedword);
}
在此代码之后,我可以加载已发布的单词,如下图所示![result2][2] 现在我希望我的单词位于菜单和类别之间。在上图中,您可以看到主页没有被破坏,它是在发布的单词后面出现的。