我是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']);
有什么想法吗?
答案 0 :(得分:1)
你应该等到Angular更新它的范围(申请)
所以可能的解决方案只是设置到队列的末尾
$timeout(function(){
$scope.newArray = $scope.list.join(';');
}, 0);