2014-12-08 3 views
1

мое приложение представляет собой веб-рабочий стол с использованием 4.2 extjs. я просто хочу добавить мое окно в контроллер, чтобы я мог создать MVC, но я не могу понять, как добавить контроллер. Вот мой код. Переменная win всегда не определена. как это исправить.? пожалуйста, помогитеКак добавить функцию для создания окна extjs4?

Ext.define('MyDesktop.Modules.Itemmanagement.Client.Itemmanagement', { 
    requires: ['Ext.tab.Panel', 
     'Ext.ux.CheckColumn'], 
    id: 'itemmanagement-win', 
    init: function() { 
     var me = this; 

     this.launcher = { 
      text: 'Itemmanagement Module ', 
      iconCls: 'icon-itemmanagement', 
      handler: this.createWindow, 
      scope: this 
     }; 

    }, 
    createWindow: function() { 
     var me = this; 
     var desktop = this.app.getDesktop(); 
     var win = desktop.getWindow('itemmanagement-win'); 
     if (!win) { 
      Ext.application({ 
       name: 'USER', 
       appFolder: '/modules/', 
       controllers: [ 
        "User" 
       ], 
       launch: function() { 
        win = desktop.createWindow({ 
         id: 'itemmanagement-win', 
         title: 'Item Management', 
         width: 600, 
         height: 505, 
         iconCls: 'icon-itemmanagement', 
         animCollapse: false, 
         constrainHeader: true, 
         layout: 'fit' 
        }); 
       } 
      }); 
     } 
     win.show(); 
     return win; 
    } 
}); 
+0

ли 'MyDesktop.Modules.Itemmanagement.Client.Itemmanagement' ваш Controler? Затем вы должны перейти от Ext.app.Controller в своей конфигурации, например 'extend: 'Ext.app.Controller', ...' –

+0

@ И-y это не мой контроллер. thats my application name.i просто хочу включить контроллер в мое окно. – ricky400

ответ

0

Создать окно в текущем приложении и не создать новое приложение.

createWindow: function() { 
    var me = this; 
    var desktop = this.app.getDesktop(); 
    var win = desktop.getWindow('itemmanagement-win'); 
    if (!win) { 
     win = desktop.createWindow({ 
      id: 'itemmanagement-win', 
      title: 'Item Management', 
      width: 600, 
      height: 505, 
      iconCls: 'icon-itemmanagement', 
      animCollapse: false, 
      constrainHeader: true, 
      layout: 'fit' 
     }); 
    } 
    win.show(); 
    return win; 
} 

Определить контроллер в папке контроллера (например, app/controller/ItemmanagementWindow.js). Добавьте его в раздел своего контроллера в своем приложении. Вызовите функцию init this.control() с интересными интересующими компонентами и прослушайте события.

Ext.define('MyDesktop.controller.ItemmanagementWindow',{ 
    extend: 'Ext.app.Controller', 

    init: function(){ 
     this.control({ 
      // selector of window we want to add listeners to 
      '#itemmanagement-win' : { 
       // events we listen to 
       afterrender: this.onAfterRender 
      } 
     }); 
    }, 

    // handler function of the afterrender event 
    onAfterRender: function(window, eOpts){ 
     //do some stuff in the after render event ... 
    } 
}); 

См Application, ComponenQueries и MVC architecture для получения дополнительной информации

+0

спасибо, что ответ @ И-у, хорошо, попробовай. Я просто путаюсь с контроллером, и им просто интересно, могу ли я включить его в свое окно, поэтому мое окно (это действительно мой модуль) будет иметь другой контроллер, что означает, что у него другое приложение. вот почему я спросил здесь, снова спасибо за ответ – ricky400

Смежные вопросы