Ошибка: многократное определение из конфликта Dojo и jQuery-UI

Я пытаюсь создать редактируемый SlickGrid (который использует jquery-ui), а также использовать Dojo.

Когда моя страница содержит
<script src="../../bower_components/dojo/dojo.js"></script>
<script src="../../bower_components/SlickGrid/lib/jquery-ui-1.11.3.js"></script>
<script src="../../mlads/fillDemo/FillDemo.js"></script>
консоль показывает

Error: multipleDefine
return mix(new Error(error), {src:"dojoLoader", info:info});  dojo.js (line 106)
src: dojoLoader   dojo.js (line 1896)
info: Object { pid="dijit",  mid="dijit/_WidgetsInTemplateMixin",  pack={...},  more...}

Если я закомментирую строку jquery-ui, ошибка исчезнет.
FillDemo.js - мой исходный код, который начинается с

require(
[    "dojo/_base/declare",
     "dijit/_WidgetBase", 
     "dijit/_TemplatedMixin",
     "dijit/_WidgetsInTemplateMixin",
     "dijit/registry",
     "dijit/form/Button", 
     "dijit/form/DropDownButton",

1 ответ

Решение

Похоже, что это ошибка с порядком, в котором загружается пользовательский интерфейс jQuery против инициализации загрузчика dojo.

См. Обсуждение здесь для получения дополнительной информации: https://geonet.esri.com/message/448542

Решение состоит в том, чтобы удостовериться, что загрузчик dojo вызывается после загрузки jQuery UI и jQuery. Для этого вы можете переместить загрузку dojo вниз страницы HTML и оставить в заголовке jQuery и jQueryUI.

Другие вопросы по тегам