AngularJS/UI ui-sortable 没有隔离范围?

标签 angularjs angularjs-directive jquery-ui-sortable angular-ui

当我调查 ui-sortable 指令中的 ng-repeats 问题时,我后来发现它与这个 (https://github.com/angular-ui/ui-sortable/issues/2) 是同一个问题,我遇到了另一个关于范围的问题ui-sortable 指令。

如果你看看这个 fiddle :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 元素吗?如果我做错了什么,请告诉我,在此先感谢!

最佳答案

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

请看一下演示。

Demo

关于AngularJS/UI ui-sortable 没有隔离范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17559471/

相关文章:

javascript - 预期数组但收到...(JSON)... AngularJS 错误

javascript - 尝试使用 $rootScope 实现指令并收到 TypeError : Cannot read property '$on' of undefined

javascript - 使用 Getter 函数返回 undefined 从 Angular 服务公开一个对象

javascript - 使用 ng-options 显示对象属性但将索引与 ng-model 绑定(bind)

javascript - 如何在 AngularJS 中测量请求(XHR)持续时间?

javascript - 允许向对象添加和删除功能的设计模式

javascript - Angular.js - 使用 $location 服务创建 url

javascript - jquery UI Draggable : ui. child 不是一个函数

jqueryUI 可排序/可拖动和溢出(或 z-index?) - 不一致的行为

jQuery - 操作可排序列表中删除的元素