angular-drag-and-drop-lists icon indicating copy to clipboard operation
angular-drag-and-drop-lists copied to clipboard

using track by in ng-repeat will cause dnd-moved not to trigger

Open Mr-Skribbls opened this issue 7 years ago • 3 comments

I made the mistake of using track by $index in ng-repeat. Like this: <script type="text/ng-template" id="list.html"> <ul dnd-list="list"> <li ng-repeat="item in list track by $index" dnd-draggable="item" dnd-effect-allowed="move" dnd-moved="list.splice($index, 1)" dnd-selected="models.selected = item" ng-class="{selected: models.selected === item}" ng-include="item.type + '.html'"> </li> </ul> </script> this causes dnd-moved to not trigger when you drag a bottom item up the list. Causing there to be duplicates. I reproduced this using the demo code.

Mr-Skribbls avatar Oct 19 '18 00:10 Mr-Skribbls

Were you able to solve this ?

warlockdn avatar Mar 25 '19 10:03 warlockdn

no I had to remove the track by for it to work

Mr-Skribbls avatar Apr 14 '19 19:04 Mr-Skribbls

I confirm that track by $index breaks the whole thing!!! It actually drags the item but the $index passed to the dragMoved callback is sometimes wrong, making you delete the wrong item and actually duplicating the one you just moved.

lorenzo-dd avatar Jun 12 '19 11:06 lorenzo-dd