使用Angularjs Drag& Drop删除可放置的元素

时间:2016-02-12 08:19:30

标签: javascript angularjs jquery-ui drag-and-drop

我使用Angular jsfiddle模块有一个简单的Drag and Drop。 我想要的:在左边,一张卡片列表。他们每个都是可拖的。在右边,一个下降区域。拖放后,元素将被克隆并添加到ctrl.program列表中。到目前为止,非常好。

问题:我必须能够从右侧区域(即program数组)重新排序和删除元素。我尝试了多种解决方案,但都没有。理想地,当一个元素掉落到掉落区域(即右列)之外时,该元素被移除。现在,我只需使用一个按钮

<button class="btn" ng-click="remove(ctrl.program, $index)"> remove </button>

$scope.remove = function(array, index){
   array.splice(index, 1);
}

但它会抛出

Error: cannot call methods on draggable prior to initialization; attempted to call method 'destroy'

知道如何顺利​​执行删除吗?

1 个答案:

答案 0 :(得分:0)

好的,如果有人遇到同样的问题,这就是答案。

从此issue

  

在angular.js之后插入脚本jquery.ui.js会导致1.3但不是1.2的问题。特别是如果拖放指令与ngRepeat一起使用。在通过$ animate.leave删除元素时,拖放插件会在$ destroy事件之前被'remove'事件破坏。

我在 之前插入了jquery.ui.min.js 所有角度脚本,它完美无缺。