0

我想渲染一个view我在单击另一个按钮时创建的view

这是我的控制器代码,我正在关注MVC architecture

Ext.define('demo.controller.LoginController' , {

    extend: 'Ext.app.Controller',

    config: { 

        refs:{

                loginAction: 'button[action=login]'

        },
        control:{

                loginAction: {

                    tap:'loginProcess'
                }
        }


    },
    loginProcess:function(button,e,opts){


         // Render View here


    }


});

我已经搜索过,我遇到了getMainView().push()Ext.ViewPoart.add()但它不起作用。根据 MVC 模式,应该如何从控制器调用这个视图?

编辑

的代码profilecontainer

Ext.define('demo.view.ProfileContainer',{


            extend:'Ext.Panel',
            xtype:'profilecontainer',

             requires: [
        'Ext.Label'
    ],

             config: {

                items:[{
                            xtype:'label',
                            html:'hi'
                }]

            }


});
4

1 回答 1

1

如果您正确设置它们,您尝试过的两种方法都应该有效。

首先,getMainView().push(newView)如果mainViewExt.navigation.View. 在此处查看此方法的文档:http ://docs.sencha.com/touch/2.2.1/#!/api/Ext.navigation.View-method-push

您也可以使用Ext.Viewport.setActiveItem(newView),假设您没有拼写错误(您的帖子说ViewPoart)。(Ext.Viewport.add会将面板添加到视口,但不会将其设置为布局中的活动卡片)

如果这些都不起作用,那么您可能没有正确配置您的控制器。如果是这种情况,请确保loginProcess正在调用您的方法。如果不是,那么您的选择器 ,button[action=login]不正确。

于 2013-07-25T17:14:21.657 回答