如何在ExtJS 5上从控制器加载新视图?

时间:2015-04-13 17:51:08

标签: extjs mvvm

所以我正在开发基于Sencha ExtJs 5.1.0的多视图应用程序。这可能是一个非常愚蠢的问题。但是,如何从控制器加载另一个视图?我在MVVM模式下工作。

在我的index.html上,我有一个id =“senchaContent”的div,我正在渲染我的第一个视图:

Ext.application({
    name: 'EXAMPLE',

    extend: 'EXAMPLE.Application',

    //autoCreateViewport: 'EXAMPLE.view.main.Main'
    launch: function() {
        Ext.create('MODIFE.view.main.Main',{
            renderTo: 'senchaContent'
        });
    }
});

在MainController上,我正在处理应该加载另一个视图的事件(在#senchaContent Div中替换EXAMPLE.view.main.Main)。

我如何实现这一点(破坏前一个视图并渲染新视图)?

谢谢!

1 个答案:

答案 0 :(得分:1)

最简单的解决方案是使用处理两者的面板。然后,您只需将新视图添加到面板中。

查看我的示例:https://fiddle.sencha.com/#fiddle/l61

控制器切换器逻辑:

onShowView1 : function() {
    this.getView().removeAll();
    this.getView().add(Ext.create("MyView1"));
},

onShowView2 : function() {
    this.getView().removeAll();
    this.getView().add(Ext.create("MyView2"));
}