#javascript #extjs
Вопрос:
Я наткнулся на класс extjs на GitHub, который я хотел бы использовать в своем приложении. Куда мне положить этот файл?
Я знаю, что структура файлов в extjs соответствует некоторым шаблонам, поэтому, например, если имя моего приложения-MyApp, я помещаю классы в соответствующие папки, например MyApp.view.myfolder.MyClass
.
Однако в этом случае использование класса задается как
GLC.tip.toast(title, message, options)
поэтому я сомневаюсь, что мне следует поместить его в какую-нибудь папку просмотра. С другой стороны, я попытался скопировать эти два файла (glc_tip.js и tip.scss) в корневой папке моего приложения и включите в index.html следующая строка:
<script type="text/javascript" src="glc_tip.js"/>
но это также не работает. Я получил ошибку, что она не определена.
Обновить
Я создал папку /ux/tip/ в корневом каталоге приложения и поместил файлы toast.js (переименовано glc_tip.js) и введите в него tip.scss. После этого я изменил app.json, поэтому раздел с «js» и «css» выглядит так:
"js": [{
"path": "app.js",
"bundle": true
},{
"path": "/ux/tip/toast.js",
"bundle": true
}],
"css": [{
// This entry uses an ant variable that is the calculated value of the generated
// output css file for the app, defined in .sencha/app/defaults.properties
"path": "${build.out.css.path}",
"bundle": true,
"exclude": ["fashion"]
},{
"path": "/ux/tip/tip.scss"
}],
После этого я сделал sencha app refresh
и sencha app build development
, но это все еще не работает. я получаю сообщение об ошибке:
Ошибка неперехваченной ссылки: GLC не определен в конструкторе.обработчик
Ответ №1:
Лучше зарегистрировать сторонние библиотеки в файле app.json. Там должны быть разделы js и css. Вы можете вставить его в ‘/ux/tip/toast.js’ файл (создайте dir, если они не существуют).
Файлы Js в
"js": [
{
"path": "${framework.dir}/build/ext-all-rtl-debug.js"
},
{
"path": "app.js",
"bundle": true
}
],
CSS-файлы будут зарегистрированы в
"css": [
{
// this entry uses an ant variable that is the calculated
// value of the generated output css file for the app,
// defined in .sencha/app/defaults.properties
"path": "${build.out.css.path}",
"bundle": true,
"exclude": ["fashion"]
}
],
И не забудьте перестроить и обновить свой проект, чтобы применить изменения.
Комментарии:
1. Я обновил свой вопрос вашим предложением. Не могли бы вы, пожалуйста, взглянуть и сказать мне, что я делаю не так?
2. Похоже, вы забыли переименовать класс из GLC.. соответствующий. Что-то вроде YOUR_PROJECT_NAME.ux.Подсказка..
3. Исходный класс определяется как Ext.define(‘GLC.tip’, {… Не могли бы вы подтвердить, нужно ли мне изменить это определение на Ext.define(‘MyApp.ux.tip.toast’, {…
4. Да, что-то вроде этого.
5. Теперь я получаю следующую ошибку: Неперехваченная ошибка типа: m.slideIn не является функцией