我使用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'
知道如何顺利执行删除吗?
答案 0 :(得分:0)
好的,如果有人遇到同样的问题,这就是答案。
从此issue,
在angular.js之后插入脚本jquery.ui.js会导致1.3但不是1.2的问题。特别是如果拖放指令与ngRepeat一起使用。在通过$ animate.leave删除元素时,拖放插件会在$ destroy事件之前被'remove'事件破坏。
我在 之前插入了jquery.ui.min.js
所有角度脚本,它完美无缺。