Ошибка: многократное определение из конфликта 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.