AngularJS/UI ui-sortable没有隔离作用域?

3
当我查找在ui-sortable指令中使用ng-repeats时遇到的问题时(后来发现这与https://github.com/angular-ui/ui-sortable/issues/2相同),我遇到了另一个关于ui-sortable指令范围的问题。
如果您查看此fiddle:http://jsfiddle.net/hKYWr/707/ 请打开控制台,您会注意到当您开始和停止拖动时,控制台中会出现“start”和“stop”。
但是,当您引入具有不同选项的第二个ui-sortable部分时,它会覆盖第一个部分的事件(反之亦然)。 您将注意到“stop”不再由第一组颜色调用: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 元素吗?如果我做错了什么,请提前告诉我,谢谢!

1个回答

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接