0

从我的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'
            }
        ]
    }
});

从“主面板”我们可以转到左上角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

4

3 回答 3

1

有几个问题。

  1. YoutubeView 扩展了一个导航视图。通常你会有一个扩展导航视图的主视图,然后从这个主视图推送和弹出视图。

  2. 不要使用身份证。这是水龙头第二次不触发的原因。

于 2012-09-27T02:04:01.867 回答
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
 });
}

});
于 2012-09-27T05:42:50.960 回答
0

这成功了:

tapClose: function (cmp) {
    Ext.Viewport.remove(Ext.Viewport.getActiveItem(), true);
}
于 2012-10-06T15:04:09.840 回答