我希望在点击另一个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'
}]
}
});
答案 0 :(得分:1)
如果你正确设置它们,你尝试过的两种方法都应该有效。
首先,如果getMainView().push(newView)
是mainView
,Ext.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]
不正确。