Добавление пользовательских библиотек в виджет в ArcGIS Web AppAbuilder - PullRequest
1 голос
/ 12 июня 2019

Я пытаюсь добавить локальную версию jquery и jquery-modal (https://jquerymodal.com/) только для моего виджета и виджета, поскольку она будет использоваться только в виджете.

Я попытался создать папку с именем extraLibs в корневой папке моего виджета (где находится widget.js / html) и сослаться на нее в widget.js в разделах define ([]) и function () кода. , но я делаю это неправильно, так как он возвращает ошибку «jQuery не определен», поэтому я считаю, что проблема заключается в том, как я объявляю файлы .js в папке «extraLibs».

Затем я перешел на https://jquerymodal.com/, получил ссылки на CDN, загрузил оба файла .js, переименовал их в jQuery.js и jQueryModal.js и поместил их в папку extraLibs.

Затем я объявил их так:

define([... './extraLibs/jQuery', './extraLibs/jQueryModal'],
function(... jQuery, jQueryModal){
//code goes here
});

Возвращает сообщение об ошибке «jQuery is notfined» в консоли при нажатии на виджет, открытый.

Я пробовал по этой теме без удачи.

Каков правильный способ добавить внешние библиотеки в виджеты?

Ответы [ 3 ]

1 голос
/ 13 июня 2019

Мне удалось успешно загрузить jQuery на уровне виджета, выполнив следующее:

define([... 'jimu/loaderplugins/jquery-loader!https://code.jquery.com/jquery-3.4.1.min.js'],
function(...){
//code goes here
});

Что касается модуля jquery-modal, я встроил его в widget.js непосредственно в функцию postCreate, переместивего код окончен.

1 голос
/ 14 июня 2019

Arcgis Web AppBuilder (WAB) определяет переменную dojoConfing внутри файла init.js.Если вы присмотритесь, вы найдете пакет 'libs', определенный там:

...
,{
  name: "libs",
  location: window.path + "libs"
},
...

Итак, вы можете оставить свою внешнюю библиотеку в папке libs (wab / server / apps / 1 / libs / - дляприложение с идентификатором 1), а затем обратитесь к этой библиотеке, используя:

//File: MyWidget.js
define([
'libs/JQuery', 
'libs/lib2',
'libs/lib3'
],function(jQuery, Lib2, Lib3){
 //...
});

Я не тестировал этот код, но, судя по виджетам WAB по умолчанию, кажется, что это ожидаемый способ.

В этом видео вы найдете больше полезных советов по Web AppBuilder .

0 голосов
/ 12 июня 2019

, если вы используете API-интерфейс arcgis javascript и, следовательно, dojo, затем настройте объект dojoConfig перед включением API-интерфейса dojo.

<script type='text/javascript'>
var dojoConfig = {
aliases [
['jQuery', 'extraLibs/jquery/jquery.js'],
['jQueryModal', 'extraLibs/jquery-modal/jquery-modal.js']
]
}
</script>
<script src="https://js.arcgis.com/3.28/"></script>

, тогда в вашем основном файле javascript вы можете просто сослаться на псевдоним

define[... 'jQuery', 'jQueryModal],
function(... jQuery, jQueryModal){
});
...