Animating ng-move in AngularJS ngRepeat is animati

2020-06-12 04:36发布

问题:

I'm a little flummoxed when it comes to animating ng-move in an ng-repeat. If I move an array item from 3 to 7 for instance, items 4-7 get shifted up and they animate. However the actual item I moved from 3 and placed in position 7, does not. Here's a plunkr demonstrating my issue.

http://plnkr.co/edit/4yRkLWbsU57YxrYOrWUQ?p=preview

Moving item 7 to 3, however, works as I expect, animating the single moved item, and not the items that have been pushed down.

This is not very useful for showing a user what moved. How should someone properly animate an ng-move?

回答1:

@tasseKat has an excellent answer, which explains the behavior you observed: https://stackoverflow.com/a/27616435/1652643

However, his solution is not as simple as you would wish... but so far I haven't found anything better.



回答2:

The correct syntax is

arrayVar.splice(to, 0, arrayVar.splice(from, 1));

To remove and return an element at the index i of array arr, use arr.splice(i, 1),