3

当我在ui-sortable指令(我后来发现与此问题相同(https://github.com/angular-ui/ui-sortable/issues/2))中查找了一个我正在使用ng-repeats的问题时,发现了另一个有关ui-sortable范围的问题指示。AngularJS/UI ui-sortable没有隔离范围?

如果你看看这个小提琴:http://jsfiddle.net/hKYWr/707/

请打开您的控制台,你会发现,当你启动和停止拖动,你会看到一个“开始”,并在控制台“停止” 。

但是,当您引入具有不同选项的第二个可排序的部分时,它会覆盖第一个(或反之亦然)的事件。你会发现,“停止”不再被由第一组的颜色称为: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排序元素?请让我知道如果我做错了什么,提前致谢!

回答

1

我刚刚复制并粘贴了最新的sortable.js代码到jsfiddle编辑器,并删除了链接<script src="//cdnjs.cloudflare.com/ajax/libs/angular-ui/0.4.0/angular-ui.min.js"></script>。它似乎正常工作。

请看演示。

Demo