Dandelion Datatables не может загрузить jquery-ui
Недавно я установил Dandelion datatables 1.1.1 и не могу понять, как активировать jquery-ui, который поставляется с базовой библиотекой. Мне нужно, чтобы использовать DatePicker.
В моем проекте используется следующая архитектура:
src
web
|__ resources
|__ css
|__ js
|__ WEB_INF
|__ views
|__ ... html views
|__ spring-servlet.xml
Я загружаю ресурсы одуванчика в весенний сервлет через:
<mvc:resources mapping="/dandelion/**" location="classpath:/META-INF/resources/dandelion/"/>
В папке js у меня есть datepicker-init.js:
$(document).ready(
function () {
$( "#datepicker" ).datepicker({
changeMonth: true,
changeYear: true
});
}
);
Затем я пытаюсь загрузить этот скрипт в моем заголовке
<script th:src="@{/resources/js/datepicker-init.js}"></script>
а затем использовать его на моей HTML-странице:
<html xmlns:th="http://www.thymeleaf.org"
xmlns:dt="http://www.thymeleaf.org/dandelion/datatables">
....
<div id="filter_panel">
<form th:action="@{/requests}" th:object="${requestRegisterModel}"
method="post">
<input id="datepicker" type="text" />
</form>
</div>
но получите Uncaught ReferenceError: $ не определена ошибка в консоли браузера. Я знаю, что эта ошибка возникает из-за того, что jquery-ui не определен, но я не могу загрузить скрипты в своем заголовке:
<script type="text/javascript" src="//code.jquery.com/jquery-1.11.0.js"></script>
<script type="text/javascript" src="//code.jquery.com/ui/1.11.0/jquery-ui.js"></script>
потому что в этом случае скрипт jquery загружается дважды. Я нашел подобную проблему здесь, но я подумал, что можно загрузить jquery-ui без пакетов ресурсов, но все еще не могу понять, как это сделать. Все остальное работает просто отлично.
1 ответ
Хорошо, наконец-то у меня это работает. JQuery поставляется вместе с Dandelion Datatables, поэтому нет необходимости импортировать его дважды. Но jquery загружается только после загрузки таблицы, поэтому мне нужно включить скрипт с jquery-ui
<script type="text/javascript" src="//code.jquery.com/ui/1.11.0/jquery-ui.js"></script>
после таблицы, например, в нижнем колонтитуле.