我对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']);
答案 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']);