AngularUI UI可排序索引更新问题

时间:2014-02-25 00:38:02

标签: angularjs jquery-ui-sortable angular-ui

我对AngularUI的ui-sortable指令有一个奇怪的错误。在大多数情况下,拖动元素似乎很好,当元素被拖动到新位置时索引会更新。 但是,有些事情没有得到更新。我已经创建了一个可重复的实例,问题出现了。首次运行时,将行 2 //两个行向下拖动一行,索引显然不会更新。

有没有办法解决这个问题?

HTML:

<section ng:controller="controller" ui-sortable ng-model="nums">
    <div ng-repeat="i in nums">
       {{$index}} // {{i}}
    </div>
</section>

JS:

var myapp = angular.module('myapp', ['ui']);
myapp.controller('controller', function ($scope) {
    $scope.nums = ['zero','one','two','three','four','five'];
});
angular.bootstrap(document, ['myapp']);

Jsfiddle:http://jsfiddle.net/jeffreyqua/hKYWr/1225/

1 个答案:

答案 0 :(得分:3)

您的问题的解决方案比您可能想象的要简单得多。您正在使用旧版本的Angular-UI Sortable插件,该插件不适用于较新的jQuery插件。

最新版本将解决您的问题: https://github.com/angular-ui/ui-sortable/blob/c4b8e1b9ce8a7e0525aff3ca31f439e30c5b0347/src/sortable.js (哈希是这样的,它与已知的工作版本挂钩。你也可以从主人那里制作本地副本)

JS小提琴导入更新版本的sortable。 http://jsfiddle.net/9eVEc/

请注意,您必须更改angular.module依赖项以包含['ui.sortable']而不仅仅是['ui']。

即:

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