Проблемы при переключении с загрузки bootstrap.js или ext-all-debug / mvc - PullRequest
0 голосов
/ 09 августа 2011

Я пытаюсь сделать максимально простое приложение extjs4 / sencha и обнаруживаю, что когда я использую ext-dev.js (в соответствии с рекомендациями Sencha), я получаю 404 ошибки в таких файлах, как:

/src/container/Viewport.js
/src/app/application.js

Когда я переключаюсь обратно на ext-debug-all.js, приложение работает, но ошибки, которые должны быть выброшены, не выбрасываются.

Мой App.js очень прост.это выглядит так (и я загружаю вещи в каталог / app)

Ext.Loader.setConfig({ enabled: true });
Ext.require('Ext.container.Viewport');

Ext.application({
  name: 'EvMgr',
  autoCreateViewport: true,
  launch: function () {

  },


  controllers: [
    'Main'
  ]
});

Ответы [ 2 ]

2 голосов
/ 14 сентября 2011

ext-dev.js включает только элементарный набор базовых классов Ext и зависит от динамической загрузки через Ext.Loader для извлечения дополнительных классов. Каждый класс представляет собой файл Javascript, расположенный в каскадных каталогах, соответствующих его иерархии пакетов.

По умолчанию Ext.Loader будет искать дополнительные классы Ext в каталоге src относительно каталога вашего html-файла. Следовательно, 404 для src / container / Viewport.js и src / app / Application.js .

Укажите Ext.Loader на местоположение ваших файлов Ext source , например ::

Ext.Loader.setPath('Ext', '../ext-4.0.2a/src');

Ваши пользовательские классы будут по умолчанию выбраны из каталога app, но это можно изменить по своему вкусу:

Ext.Loader.setPath('EvMgr', 'evmgr');

Кстати, при использовании ext-dev.js нет необходимости включать Ext.Loader или требуют стандартный класс Ext, такой как Ext.container.Viewport, как вы делаете в первом две строки вашего кода.

При использовании ext-all-debug.js вам необходимо явно включить Ext.Loader, чтобы разрешить динамическую загрузку файлов пользовательских классов. Однако нет необходимости устанавливать путь для классов Ext - они все равно включены в ext-all-debug.js .

Примечание: еще одна распространенная ошибка: autoCreateViewport: true Ext попытается загрузить файл класса для EvMgr.view.Viewport. Это должен быть класс, расширяющий Ext.container.Viewport.

2 голосов
/ 10 сентября 2011

Вы должны указать папку extjs src следующим образом:

Ext.Loader.setConfig({
    enabled:true,
    paths:{    
        'Ext':"js/ext/src",
        'Ext.ux':"js/ux/"
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...