0

私のビューから始めて、Mainxytpe'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か?

4

3 に答える 3

1

いくつかの問題があります。

  1. YoutubeViewはナビゲーションビューを拡張します。通常、ナビゲーションビューを拡張し、このメインビューからビューをプッシュおよびポップするメインビューがあります。

  2. IDは使用しないでください。これが、タップが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 に答える