我正在尝试开发一个应用程序,它将使用Ext.Ajax从Sencha调用REST Servive。
我成功地获得了响应,但是当我尝试加载不同的视图时,什么也没发生。
我参考了this link。
App.js
Ext.application({ 名称:'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'));
消息弹出窗口正常,但新视图未加载。
答案 0 :(得分:2)
您应该将新视图设置为viewite的activeitem,试试这个
Ext.Viewport.setActiveItem(Ext.Viewport.add({xtype:'admin'}));
这里我假设admin是你下一个视图的xtype。
答案 1 :(得分:0)
我不确定这是否是正确的方法,但我试试这个:
假设您的 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
希望它有用。