Порядок загрузки jQuery UI и Oracle MapViewer в RequireJS
Я хотел использовать jQuery UI Accordion в своем модуле, но я всегда получал, что div.accordion не является функцией, если я включаю библиотеку Oracle MapViewer. Эта библиотека еще не поддерживает AMD, поэтому я определил ее зависимость в shim. Все библиотеки загружаются в следующем порядке: пользовательский интерфейс jQuery, jQuery (Oracle MapViewer). Я думал, что jQuery должен быть загружен в первую очередь, но этот порядок работает, кроме случаев, когда я загружаю Oracle MapViewer.
Мой HTML
<!--in head-->
<script src="lib/require.min.js" data-main="app"></script>
<!--in body-->
<div id="accordion">
<h3>Section 1</h3>
<div>Vestibulum a velit eu ante scelerisque vulputate.</div>
<h3>Section 2</h3>
<div>Vivamus non quam. In suscipit faucibus urna.</div>
</div>
Мой app.js
require.config({
paths: {
"jquery": "lib/jquery-1.12.3",
"jquery-ui": "lib/jquery-ui",
"oraclemaps": "lib/oraclemapsv2"
},
shim: {
"oraclemaps": ['jquery']
}
});
require(['oraclemaps', 'jquery-ui'], function ()
{
$("#accordion").accordion();
});
Любая идея, как использовать библиотеку Oracle MapViewer в RequireJS? Я использую jQuery 1.12.3 и jQuery UI 1.11.4 (все компоненты).
2 ответа
oraclemaps включает в себя jQuery, поэтому мы можем использовать их версию. Конфигурация будет выглядеть так:
require.config({
paths: {
"jquery-ui": "lib/jquery-ui.min",
"oraclemaps": "lib/oraclemapsv2"
},
shim: {
"jquery-ui": ["oraclemaps"]
}
});
require(["jquery-ui"], function ()
{
$("#accordion").accordion();
});
Попытайтесь изменить секцию шим первого примера следующим образом:
shim: {
"jquery-ui": {
export:"$" ,
deps: ['jquery']
}
}
Или обновите до последней версии jQuery-ui, которая наконец поддерживает загрузку AMD.