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