Как предотвратить переключение аккордеона angular-ui при сортировке с помощью сортировки angular-ui

Я сделал сортируемый аккордеон с angular, angular-ui bootstrap и ui-sortable, где вы можете перетаскивать группы аккордеонов.

Проблема в том, что текущая группа аккордеонов переключается (открывается/сворачивается) при перемещении на новую позицию.

Plunkr: Нажмите

Я не могу понять, как предотвратить такое поведение, пробовал с stopPropagation() в опции sortables при остановке, функциях beforeStop и update... без изменений (потому что это относится к событию, которое обрабатывается jQuery, а не Angular, я думаю? !).

Есть идеи? заранее спасибо


person Markus Kösel    schedule 06.09.2013    source источник


Ответы (1)


Спустя долгое время я снова обернулся вокруг этого. Очевидно, это не самое элегантное решение, но пока оно работает: Plunker Если у вас есть предложения / поправки, не сдерживайтесь.

РЕДАКТИРОВАТЬ: на основе комментариев см. обновленный Plunker для Chrome: Plunker

Основная хитрость заключается в том, чтобы управлять переключателем с помощью:

<a class="accordion-toggle" 
   ng-click="$parent.isElementDragged() || (isOpen = !isOpen)" 
   accordion-transclude="heading">
   {{heading}}
</a>
person Markus Kösel    schedule 23.11.2013
comment
Это не работает на plunkr. Возможно, вы захотите обновить его :) - person a p; 03.09.2014
comment
Я протестировал FF и Chrome на Win7 прямо сейчас, и он все еще работает. Какую ОС/браузер вы использовали? - person Markus Kösel; 04.09.2014
comment
64-битный хром на Windows 7 - person a p; 04.09.2014
comment
@ a-p, не могли бы вы уточнить, в чем проблема? у меня нет 64-битной системы для тестирования. - person Markus Kösel; 04.09.2014
comment
Из-за строгой проверки типов MIME Chrome иногда отказывается выполнять JS, на который ссылается raw.github.com. Исправлено здесь plnkr.co/edit/jAY5AtnH5SE2f5aqxRGs?p=preview - person Markus Kösel; 05.09.2014