当我正在研究 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 中的“未定义”覆盖。
有谁如何处理同一页面上的多个 ui-sortable 元素?如果我做错了什么,请让我知道,提前谢谢!