2012-05-09 2 views
2

В соответствии с инструкциями here, чтобы использовать собственный API Мне нужно добавить код 'Ext.require()' в код. Как мне это сделать в Sencha Architect 2? Кажется, что все за пределами настраиваемой функции или событие доступно только для чтения, поэтому я не могу просто добавить свой собственный код ad-hoc.Как добавить 'Ext.require' в Sencha Architect 2

ответ

3

Как предлагает Бхарат Нагвани, теперь архитектор предлагает способ потребовать любые классы, которые вы хотели бы динамически загружать.

Luca Candela и я представили небольшое приложение, которое иллюстрирует использование API Ext.device.Camera несколько недель назад в Лондоне. https://github.com/CaliLuke/NativeContacts

Для того, чтобы включить в него апите устройство в вашем приложении, выполните следующие действия:

  • Перейти в Сенче SDK и скопируйте папку устройства в каталог проекта
  • Внутри архитектора, нажмите узел Применение
  • Поиск «требует» в панели конфигурации
  • Добавить «Ext.device.Camera» в конфигурацию требует
  • Поиск «погрузчик» в панели конфигурации
  • Нажмите + справа от загрузчика Config
  • Нажмите на новый добавленный узел «Loader» (дочерний Application)
  • Добавить пути «{" Ext.device ":" device/"}

Чтобы подвести итог, убедитесь, что файлы есть. Скажите приложению, что вам нужен этот класс, а затем скажите загрузчику, где найти те файлы, которые вы только что поместили в папку проекта.

+0

большое спасибо, что очищает его! – fnCzar

2

Следующее обновление в Архитекторе требует использования в качестве свойства на узле приложения, поэтому вы можете добавить его там. Теперь просто добавьте требования в функцию запуска приложения, поскольку это доступно для записи.

+0

См. Я пробовал это, но я не думаю, что это работает. Если я попытаюсь ссылаться на пространство имен Ext.device для всего, что только что прилогает мое приложение (то есть на симуляторе iphone). Без этого приложение работает отлично. Можете ли вы предоставить немного больше информации? – fnCzar

0

Вид (или применимый MVC), который требует кода, определяет это требование, поэтому он вызывается только тогда, когда это необходимо.

Ext.define('MyApp.view.SomePageView', { 
    extend: 'Ext.Panel', 
    alias: 'widget.somepageview', 

    requires: [ 
     'Ext.device.Camera', // requires go here! 
     '...' 
    ] 

Для собственных требований (вещи, не являющиеся пользовательскими расширениями), проверьте правую колонку на Sencha Docs. В этом примере и для ST2.3.1 он может быть расположен here. В верхней части вы можете увидеть Ext.device.Camera спускается прямо из Ext.Base и не требует Ext.device. В нижней части этого блока требований определяется ссылка для Camera.js. Открыв эту ссылку, вы можете точно увидеть, что происходит. Определив requires: ['Ext.device.Camera'], вы также автоматически загружаете все, что требуется для работы.

В Архитекторе, когда вы определяете первичный MVC или S, он добавляется в Application Requires. Поэтому в Architect я могу увидеть SomePageView, указанный в разделе Application> Ext.app.Controller> views. Во время процесса сборки эта цепочка запросов через приложение будет включена в финальный пакет, будь то с использованием сборки архитектора, или с вызовом командной строки, например sencha app build с использованием Sencha Cmd.

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