虽然我正在研究一个问题,我在ui-sortable指令中使用了ng-repeats,我后来发现它与此问题相同(https://github.com/angular-ui/ui-sortable/issues/2),我遇到了关于范围的另一个问题ui-sortable指令。
如果你看这个小提琴:http://jsfiddle.net/hKYWr/707/
请打开你的控制台,你会发现当你开始和停止拖动时,你会在控制台中看到“开始”和“停止”。
但是,当您引入具有不同选项的第二个ui-sortable部分时,它会覆盖第一个的事件(反之亦然)。您会注意到第一组颜色不再调用“停止”:http://jsfiddle.net/hKYWr/708/
在单步执行angular-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似乎被最后一次调用的ui-sortable中的“undefined”覆盖了。
有人如何在同一页面上处理多个ui-sortable元素?如果我做错了,请告诉我,提前谢谢!
答案 0 :(得分:1)
我刚刚将最新的sortable.js代码复制并粘贴到jsfiddle编辑器中,并删除了链接<script src="//cdnjs.cloudflare.com/ajax/libs/angular-ui/0.4.0/angular-ui.min.js"></script>
。它似乎运作正常。
请看一下演示。
的 Demo 强>