Вид Sencha не меняется при клике события


Я пытаюсь разработать приложение с помощью will call REST Servive от Sencha, используя Ext.Аякс.

Я успешно могу получить ответ, но когда я пытаюсь загрузить другой вид, ничего не происходит.

Я взял ссылку на эту ссылку.

Приложение.js

Доб.приложение({ название: '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 всплывающее окно идет должным образом, но новый вид не загружается.

2 3

2 ответа:

Вы должны установить новое представление в качестве activeitem в viewport, попробуйте это

Доб.Область просмотра.setActiveItem (доб.Область просмотра.add({xtype: 'admin'}));

Здесь я предполагаю, что admin-это тип вашего следующего представления.

Я не уверен, что это правильный способ сделать это, но я пытаюсь сделать это:

Пусть говорят ваш логин.js имеет идентификатор под конфигурационной частью, подобный приведенному ниже примеру:

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

Надеюсь, что это будет полезно.