Código JS:
$scope.addFunction = function(){ $scope.dummyList1 = []; let n=4; for(let i=0;i<n;i++) { $scope.dummyList1.push({key:i}); } }; $scope.addFunction(); $scope.initializeSortable1 = function(){ let myArguments1 = {}; $( ".sortable3" ).sortable({ stop : function( event, ui ) { if (this === ui.item.parent()[0]) { if (ui.sender == null) { myArguments1 = assembleData(this); myArguments1; } } var newList = []; for(var i=0;i<myArguments1.length;i++){ newList.push({key:myArguments1[i]}); } $scope.dummyList1 = newList; } }); }; $scope.initializeSortable1();
código html (angular):
<div> <div class="sortable3"> <div ng-repeat="xx in dummyList1 track by $index" id="{{xx.key}}" > <div>{{xx.key}}</div> </div> </div> </div>
crea una lista ordenable como: 0 1 2 3
ahora, cuando arrastro y suelto 0 sobre 3, se espera que la lista se convierta en: 1 2 3 0
pero en su lugar se convierte en: 1 0 2 3 o alguna otra cosa a veces.
ahora en la eliminación del código
var newList = []; for(var i=0;i<myArguments1.length;i++){ newList.push({key:myArguments1[i]}); } $scope.dummyList1 = newList;
desde la función de parada, la clasificación funciona como se esperaba. pero necesito este fragmento de código porque necesito actualizar la lista principal =>$scope.dummyList1 responsable de representar en la interfaz de usuario en cada actualización.
señale el problema o sugiera una alternativa adecuada.
Gracias