Extjs Sencha视图在单击事件时不更改
我正在尝试使用Ext.Ajax从Sencha开发一个名为REST Servive的应用程序 我成功地获得了响应,但是当我尝试加载不同的视图时,什么都没有发生 我已经参考了 App.jsExtjs Sencha视图在单击事件时不更改,extjs,sencha-touch,sencha-touch-2,Extjs,Sencha Touch,Sencha Touch 2,我正在尝试使用Ext.Ajax从Sencha开发一个名为REST Servive的应用程序 我成功地获得了响应,但是当我尝试加载不同的视图时,什么都没有发生 我已经参考了 App.js Ext.Msg.alert('title', 'Failure'); Ext.Viewport.add(Ext.create('epsoft.view.admin')); 外部应用程序({ 名称:“epsoft” requires: [ 'Ext.MessageBox', 'Ext.Ajax',
Ext.Msg.alert('title', 'Failure');
Ext.Viewport.add(Ext.create('epsoft.view.admin'));
外部应用程序({
名称:“epsoft”
requires: [
'Ext.MessageBox',
'Ext.Ajax',
'Ext.Container'
],
views: [
'Main','admin','login',
],
launch: function() {
// Destroy the #appLoadingIndicator element
Ext.fly('appLoadingIndicator').destroy();
// Initialize the main view
Ext.Viewport.add(Ext.create('epsoft.view.login'));
},
)}
在LoginController.js下
Ext.Msg.alert('title', 'Failure');
Ext.Viewport.add(Ext.create('epsoft.view.admin'));
Msg弹出窗口显示正常,但新视图未加载。我不确定这是否正确,但我尝试了以下方法: 假设您的login.js在配置部分下有id,类似于下面的示例:
Ext.define('epsoft.view.login', {
extend: 'Ext.Container',
xtype: 'login',
config: {
id: 'loginForm', // here is ID
items: [
. . .
]
}
});
然后在您的loginController.js下,您可以通过以下方式启动新视图:
var paneltab = Ext.create('epsoft.view.admin'); //Mention the view name to launch
Ext.getCmp('loginForm').destroy(); // Destroying the ID
Ext.Viewport.add(paneltab); // add to the ViewPort
希望它有用。您应该将新视图设置为viewport的activeitem,请尝试以下操作 setActiveItem(Ext.Viewport.add({xtype:'admin'}))
这里我假设admin是您下一个视图的X类型。谢谢,Ram,这也可以。但是你能告诉我两者的区别吗??这将帮助我更好地理解。这是推荐的方法,使用viewport为您尝试创建的视图添加div标记,这是我们两个答案的共同点,但在您的情况下,您要显示的视图位于背景中,您正在破坏当前视图(当前视口的活动项)显示您刚刚创建的视图。这种方法的问题是当您试图返回时,在这种情况下,您无法返回,因为您已经破坏了返回时希望显示的视图。我希望我是清楚的,如果不是,我会进一步澄清