Приложение ExtJs MVC не загружается

В настоящее время я пытаюсь запустить приложение ExtJs MVC, которое я создал, интегрированное в другое приложение. По непонятным причинам он отказывается запускаться и не выдает никакого разумного сообщения о том, почему это происходит, глядя на приведенный ниже код, я смог определить, что функция init работает до конца, но не launch или beforeLaunch. Также Das.SubApp расширяет Ext.app.Controller.

   this.subApp = Ext.create('Das.SubApp', {
        appFolder: '/Scripts/app/das/FBrowser',
        name: 'FBrowser',
        controllers: ['BrowerController'],
        dependencies: {
            css: [],
            js: []
        },
        init: function() {console.log("initialized")},
        beforeLaunch: function() {
            console.log("Before launch");
        },
        launch: function () {
            console.log("launched library");
           }

Вот код из BrowserController:

Ext.define('FBrowser.controller.BrowserController',{
extend: 'Ext.app.Controller',
views: ['browser.tree_dir',...],
stores: [...],
requires: ['FBrowser.Utilities'],

init: function() {

    this.control({..})

Кто-нибудь знает, что может быть не так?

РЕДАКТИРОВАТЬ: Итак, я, кажется, нашел часть проблемы. Похоже, что путь к приложению не установлен, но я до сих пор не понимаю, почему это так, разве appFolder не должен указывать на нужное место?


person Art F    schedule 19.12.2012    source источник
comment
Какое консольное сообщение из браузера говорит?   -  person Dejo    schedule 19.12.2012
comment
Я получаю сообщение initialized сверху, я не получаю никаких других сообщений, никаких ошибок.   -  person Art F    schedule 19.12.2012


Ответы (1)


Это довольно легко;

Ext.app.Controller не имеет

  • папка приложения
  • название
  • перед запуском

и если вы инициализируете его таким образом, он не будет вызывать метод запуска, потому что все это сделано или, лучше сказать, принадлежит Ext.app.Application контроллеру. Также обратите внимание, что у вас может быть только один активный экземпляр Ext.app.Application, иначе вы испортите EventBus (переопределите шину первого Ext.app.Application). И даже если вы добавите эти свойства (appFolder, name), они вообще ничего не сделают, потому что они используются только внутри Ext.app.Application, который является производным от Ext.app.Controller.

Решение

Das.SubApp должно быть Ext.app.Application (не расширяйте, если это действительно не нужно, потому что вы все равно можете иметь только один активный экземпляр).

Вас также может заинтересовать это ответ или это

person sra    schedule 19.12.2012
comment
А, это выглядит разумно. Я предположил, что Ext.app.Controller должен работать, так как есть другие приложения, использующие Das.Subapp, но, присмотревшись повнимательнее, я заметил, что мое первое использует ExtJs MVC, где appFolder и name имеют значение. - person Art F; 19.12.2012