Javascript 在Angular JS中交换元素

Javascript 在Angular JS中交换元素,javascript,jquery,html,angularjs,Javascript,Jquery,Html,Angularjs,我很好奇,使用angular设置动画和交换元素的合适方法是什么。我有一个二维数组,它有一个嵌套的ng repeat来创建表。我的最终目标是使用动画使表中的两个元素交换位置,因此基本上只需将鼠标悬停在彼此的位置上 我有一个交换两个jquery元素位置的函数,但它不会更新数组,最终角度数组将不再与显示的内容同步。我还发现,当在行与列之间移动元素时,动画会稍微挂起,而列是平滑的。ie[0][0]->[0][1]平滑且[0][0]->[1][0]挂起 jQuery.fn.swapWith = funct

我很好奇,使用angular设置动画和交换元素的合适方法是什么。我有一个二维数组,它有一个嵌套的ng repeat来创建表。我的最终目标是使用动画使表中的两个元素交换位置,因此基本上只需将鼠标悬停在彼此的位置上

我有一个交换两个jquery元素位置的函数,但它不会更新数组,最终角度数组将不再与显示的内容同步。我还发现,当在行与列之间移动元素时,动画会稍微挂起,而列是平滑的。ie[0][0]->[0][1]平滑且[0][0]->[1][0]挂起

jQuery.fn.swapWith = function (to, callback) {    
        animating = true;
        thisPos = this.position();
        toPos = to.position();
        $.when(this.animate({
            top: toPos.top,
            left: toPos.left
        }, 300),
            to.animate({
                top: thisPos.top,
                left: thisPos.left
            }, 300)).done(function () {
                animating = false;
                if (callback) {
                    callback();
                }
            });


    };
我还发现了这个代码笔,它很不错,但也不是我想要的。有没有一个标准的方法来处理像这样的事情

更简单地说:如果我想让数组[0][0]与数组[0][1]交换位置,并让$scope对象适当更新,我应该怎么做?是否与数组[0][0]到数组[1][0]相同

编辑:我应该提到,我已经注意到简单地将元素设置为彼此相等将适当地更新表。问题在于缺乏动画。例如:

a = [0][1]
b = [0][0]

[0][1] = b
[0][0] = a

可能会有帮助吗?或者谢谢你的回复,我已经看到了这两个,第二个就是我链接的代码笔。实际上,我还没能让第一个开始工作,但我可以多花点时间研究一下。我链接的代码笔实际上让我很接近,但动画滞后。$scope成员与网格不匹配。可能会有帮助吗?或者谢谢你的回复,我已经看到了这两个,第二个就是我链接的代码笔。实际上,我还没能让第一个开始工作,但我可以多花点时间研究一下。我链接的代码笔实际上让我很接近,但动画滞后。$scope成员与网格不匹配。