Sencha View不会更改Click事件

时间:2014-01-10 11:44:09

标签: extjs sencha-touch sencha-touch-2

我正在尝试开发一个应用程序,它将使用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'));

消息弹出窗口正常,但新视图未加载。

2 个答案:

答案 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

希望它有用。

相关问题