1

我是 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/

4

1 回答 1

1

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

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

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

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

于 2013-07-27T08:42:47.290 回答