angularJS:具有数据结构的同步重新排序列表

时间:2013-07-27 03:53:30

标签: javascript angularjs

我是AngularJS的新手。

我正在尝试使用Angular ui-sortable插件重新排序数组。我希望数据数组与html ul的顺序相同,但似乎无法成功。

var myapp = angular.module('myapp', ['ui']);

myapp.controller('controller', function ($scope) {
    $scope.sortableOptions = {
        start: function (e, ui) {
            $scope.oldIndex = ui.item.index();
        },
        update: function (e, ui) {
            var newIndex = $scope.newIndex = ui.item.index();
            var oldIndex = $scope.oldIndex;

            $scope.oldArray = $scope.list.join(';');

            var item = $scope.list.splice(oldIndex, 1);
            $scope.list.splice(newIndex, 0, item[0]);

            $scope.itemMoved = item;
            $scope.newArray = $scope.list.join(';');
        }
    }

    $scope.list = ["one", "two", "three", "four", "five", "six"];
});

angular.bootstrap(document, ['myapp']);

有什么想法吗?

小提琴: http://jsfiddle.net/DxjXQ/2/

1 个答案:

答案 0 :(得分:1)

你应该等到Angular更新它的范围(申请)

所以可能的解决方案只是设置到队列的末尾

 $timeout(function(){
            $scope.newArray = $scope.list.join(';');
            }, 0);

http://jsfiddle.net/DxjXQ/5/