Всем привет, вопрос такой. Захотелось драг&дроп сортировку. Пишу с использованием AngularJS, и для того, чтоб сортировка сразу изменяла модель решил воспользоваться sortable-ui модулем. Скачал, значит, нужный js, понавключал jQuery, jQuery-UI и sortable.js:
<script src="http://code.jquery.com/jquery-1.8.3.min.js"></script>
<script src="{% static 'js/lib/jquery-ui-1.10.4.custom.js' %}"></script>
<script src="{% static 'js/lib/angular.min.js' %}"></script>
<script src="{% static 'js/lib/sortable.js' %}"></script>
в страницу. Указал 'ui.sortable' в качестве зависимости своего приложения:
angular.module('LookstatApp', ['ngCookies', 'ngRoute', 'ui.sortable'])
на странице делаю все по
этой инструкции:
<div class="row">
<ul class="select-multiple blue-border" ui-sortable ng-model="admins">
<li ng-repeat="a in admins">{$ a.name $}</li>
</ul>
</div>
В коде приложения модель admins выглядит так (чисто для примера):
$scope.admins = [
{id: 1, name: "Админ 1"},
{id: 2, name: "Админ 2"},
{id: 3, name: "Админ 3"},
{id: 4, name: "Админ 4"},
{id: 5, name: "Админ 5"},
];
И в итоге, при открытии страницы, драг&дроп не работает, а в консоль выплевывается следующий выхлоп:
TypeError: undefined is not a function
at link (http://127.0.0.1:8000/static/js/lib/sortable.js:257:19)
at K (http://127.0.0.1:8000/static/js/lib/angular.min.js:54:390)
at f (http://127.0.0.1:8000/static/js/lib/angular.min.js:47:261)
at f (http://127.0.0.1:8000/static/js/lib/angular.min.js:47:278)
at f (http://127.0.0.1:8000/static/js/lib/angular.min.js:47:278)
at f (http://127.0.0.1:8000/static/js/lib/angular.min.js:47:278)
at http://127.0.0.1:8000/static/js/lib/angular.min.js:46:377
at link (http://127.0.0.1:8000/static/js/lib/angular-route.min.js:7:388)
at K (http://127.0.0.1:8000/static/js/lib/angular.min.js:54:390)
at f (http://127.0.0.1:8000/static/js/lib/angular.min.js:47:261) <ul class="select-multiple blue-border ng-pristine ng-valid" ui-sortable="" ng-model="admins"> angular.min.js:92
Стандартные шаблонные разделители ангуляровские заменены на "{$" и "$}", чтоб не конфликтовать с Django-вским шаблонизатором, это на всякий случай. Заранее спасибо!