从我的Main
视图开始,它会使用xytpe'homepanel'加载另一个视图。
Ext.define('MyApp.view.MainView', {
extend: 'Ext.TabPanel',
alias: 'widget.main',
config: {
tabBarPosition: 'bottom',
items: [
{
xtype: 'homepanel', // loads view with xytpe 'homepanel'
}
]
}
});
来自'homepanel',我们可以转到左上角有Youtube
按钮的Close
视图
Ext.define('MyApp.view.YoutubeView', {
extend: 'Ext.navigation.View',
xtype: 'youtube',
// id: 'youtube',
config: {
navigationBar: {
items: [
{
xtype: 'button',
iconMask: true,
text: 'Close',
align: 'left',
action: 'closeButton'
}
]
},
}
});
点击Close
按钮后,我想返回Main
视图,如果可能的话重新加载,以防新帖发布。
不幸的是,这个控制器代码无法正常工作,因为它会引发Object ext-viewport has no method 'hide'
错误。
Ext.define('MyApp.controller.PostStuffController', {
extend: 'Ext.app.Controller',
requires: [
'Ext.navigation.View'
],
config: {
control: {
'button[action=closeButton]': {
tap: 'tapClose'
}
}
},
tapClose: function () {
Ext.Viewport.getId().hide();
}
});
有关如何关闭当前视图并加载Main
?
答案 0 :(得分:1)
有一些问题。
YoutubeView扩展了导航视图。通常你会有一个主视图,它可以扩展导航视图,然后从这个主视图中推送和弹出视图。
不要使用id。这是第二次点击不点火的原因。
答案 1 :(得分:0)
可能这可以帮到你。
Ext.define('MyApp.controller.PostStuffController', {
extend: 'Ext.app.Controller',
requires: [
'Ext.navigation.View'
],
config: {
control: {
'button[action=closeButton]': {
tap: 'tapClose'
}
}
},
tapClose: function (button, e, options) {
button.up('navigationview').push({
xtype: 'main', // view which you want to push
});
}
});
答案 2 :(得分:0)
这就是诀窍:
tapClose: function (cmp) {
Ext.Viewport.remove(Ext.Viewport.getActiveItem(), true);
}