ExtJS. Динамическая загрузка классов

Как загружать классы из той же директории, что и запускаемый js, html файл?

Здесь приведен сначала самый простой вариант, когда мы выносим описание наших классов в отдельный файл с расширением .js и размещаем его в той же директории, в которой у нас находится запускаемый html файл. А во второй части поста – загрузка классов из произвольных директорий.

SomeClass.js

App.js

Main.html

Как загружать файлы с классами из другой директории?

Сначала у меня не получалось загружать из другой директории. Но позже я развернул дискуссию на официальном форуме Sencha и ответ стал ясен, привожу его здесь.

Вот структура файлов, файл SomeClass.js с классом MyApp.SomeClass я положил в папку Classes

FileStructure

SomeClass.js

App.js

Main.html

Также мне понравилось замечание одного форумчанина

If you had another class named MyApp.foo.Bar then this class would then be located at Classes/foo/Bar.js (once again, case-sensitive). Notice the file structure is nested like the class’ namespace is.

То есть “фишка” в том, что файловая структура должна соответствовать namespace. Если наш файл с классом лежит не в той же директории, что и запускаемый html | js файл, то в namespace должно быть имя приложения, скажем MyApp.

Итого, вот те правила, которые я выявил в процессе своего исследования

Если файл с классом в другой директории, нужно в namespace первым элементом поставить имя приложения, например MyApp

-Желательно в 1 загружаемом файле 1 класс

-Последний элемент namespace класса и имя файла должны совпадать, например y нас есть такой namespace MyApp.SomeFolderName.SomeClass

Это значит, что мы должны разместить относительно запускаемого файла наш файл SomeClass.js  в след. директории SomeFolderName/SomeClass.js

-Если файл в той же директории, тогда namespase можно оставить как SomeClass и файл SomeClass.js разместить в той же директории, что и запускаемый html | js файл.

 

This entry was posted in ExtJS, javascript. Bookmark the permalink.