3

В то время как я искал проблему, с которой я сталкивался с ng-повторами в директиве ui-sortable, которую я позже нашел, была той же проблемой, что и эта (https://github.com/angular-ui/ui-sortable/issues/2), я столкнулся с другой проблемой, касающейся области ui-sortable директивы.AngularJS/UI ui-sortable не имеет изолированного пространства?

Если вы посмотрите на эту скрипку: http://jsfiddle.net/hKYWr/707/

Пожалуйста, откройте консоль, и вы заметите, что при запуске и остановить перетаскивание, вы увидите «старт» и «стоп» в консоли ,

Однако, когда вы вводите второй ui-сортируемый раздел с различными параметрами, он переопределяет события первого (или наоборот). Вы заметите, что «не перестанет» больше не вызывается первым набором цветов: http://jsfiddle.net/hKYWr/708/

Хотя пошаговый угловой ui.js файла, эти строки, которые вызывают проблемы:

// If user provided 'start' callback compose it with onStart function 
     _start = opts.start; 
     opts.start = function(e, ui) { 
     onStart(e, ui); 
     if (typeof _start === "function") 
      _start(e, ui); 
     }; 

     // If user provided 'start' callback compose it with onStart function 
     _stop = opts.stop; 
     opts.stop = function(e, ui) { 
     onStop(e, ui); 
     if (typeof _stop === "function") 
      _stop(e, ui); 
     }; 

     // If user provided 'update' callback compose it with onUpdate function 
     _update = opts.update; 
     opts.update = function(e, ui) { 
     onUpdate(e, ui); 
     if (typeof _update === "function") 
      _update(e, ui); 
     }; 

_stop, похоже, перезаписывается с помощью «undefined» из того, что ui-sortable получает последним.

Кто-нибудь, как обрабатывать несколько ui-сортируемых элементов на одной странице? Пожалуйста, дайте мне знать, если я делаю что-то неправильно, спасибо заранее!

ответ

1

Я только что скопировал и вставил последний код sortable.js в редактор jsfiddle и удалил ссылку <script src="//cdnjs.cloudflare.com/ajax/libs/angular-ui/0.4.0/angular-ui.min.js"></script>. Кажется, он работает правильно.

Пожалуйста, взгляните на демонстрационную версию.

Demo