Javascript-форум (https://javascript.ru/forum/)
-   ExtJS (https://javascript.ru/forum/extjs/)
-   -   Проблемы с подключением UX в extjs (https://javascript.ru/forum/extjs/75556-problemy-s-podklyucheniem-ux-v-extjs.html)

Ambassador 19.10.2018 00:10

Проблемы с подключением UX в extjs
 
Приветствую!
В своем приложении у меня не получается подключить UX. Вся библиотека extjs находится в директории: myexample/js/ext-6.2.0
Я скопировал из myexample/js/ext-6.2.0/ папку "ux" со всем содержимым в мое приложение. Структура теперь выглядит так:
test
|---app.js
|
|---app
|    |---controller
|    |---model
|    |---store
|    |---ux 
|    |---view
|---index.html



Затем в app.js перед вызовом приложения я подключаю 'ux':
Ext.Loader.setConfig({enabled:true});
Ext.Loader.setPath('Ext.ux', 'app/ux');
Ext.application({
....

При запуске приложения получаю ошибку:
[Ext.Loader] Synchronously loading 'widget.treepicker'; consider adding Ext.require('widget.treepicker') above Ext.onReady

Версия экста: Ext JS 6.2.0.981
Что я делаю неправильно?
Как корректно подключить UX?
Заранее благодарю.

Swat2k 19.10.2018 05:39

Для корректного подключения ux package, просто добавьте пакет "ux" в app.json в секцию requires

Ambassador 19.10.2018 09:13

Цитата:

Сообщение от Swat2k (Сообщение 496636)
Для корректного подключения ux package, просто добавьте пакет "ux" в app.json в секцию requires

Что именно за файл app.json? Покажите пример подключения 'UX' в секции requires

Ambassador 19.10.2018 09:46

Если имеется ввиду что подключить пакет 'ux' в app.js, то сделал так:
Ext.application({    
    name: 'BookApp',    
	requires: [        
        'BookApp.ux.TreePicker'        
    ]
...


Загружаю приложение и вижу что запрос идет к /test/app/ux/TreePicker.js и падает с ошибочкой 404.
[Ext.Loader] Some requested files failed to load.

Проверяю в пакете 'ux' наличие файла TreePicker.js - его нет. Да и вообще, прошелся по всем папкам этого пакета и не нашел TreePicker.js
Возможно ли такое что в пакете 'ux' будет не доставать каких либо файлов?
Сам ext качал с оф. сайта сенчи.

Swat2k 22.10.2018 16:31

Смотрите
https://docs.sencha.com/cmd/guides/app_json.html

В app.json подключается следующим образом
Код:

{
    ...
    "requires": [
        ....
        "ux"
    ]
    ...
}


Ambassador 25.10.2018 11:43

Суть в том что у меня нет файла app.json.
Насколько я понял создается он автоматически при создание приложения через sencha cmd, но я подключал библиотеку extjs указывая пути до необходимых файлов в index.html, т.е создавал приложение без sencha cmd

siber-biber 25.10.2018 12:56

а вот у вас класс используется BookApp.ux.TreePicker
requires: [       
	        'BookApp.ux.TreePicker'       
	    ]

а путь вы настроили для неймспейса Ext.ux а не для BookApp.ux:
Ext.Loader.setPath('Ext.ux', 'app/ux');

это так и задумано?

теперь далее ..вы скопировали каталог ux откуда конкретно? их по дистрибутиву несколько штук можно найти.

Ambassador 25.10.2018 18:03

Цитата:

Сообщение от siber-biber (Сообщение 496993)
это так и задумано?

Нет, не задумано. Поменял на
Ext.Loader.setPath('BookApp', 'app/ux');

Папку ux скопировал из: ext-6.2.0/packages
в папку app своего приложения.

siber-biber 25.10.2018 18:09

если хотите использовать индивидуальную загрузку классов для неймспейса ux, то надо чтобы путь был замаплен на каталог ext-6.2.0/packages/ux/classic/src ,,именно там класс который вы не нашли

Ambassador 25.10.2018 18:57

А если папка со всей библиотекой ext-6.2.0 лежит на сервере по иерархии выше чем папка с приложением app, то Ext.Loader.setPath уже не сможет подключить нужный каталог? Придется всю библиотеку переносить в папку app?


Часовой пояс GMT +3, время: 01:40.