我在 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']);
最佳答案
您的问题的解决方案比您想象的要简单得多。您使用的是旧版本的 Angular-UI Sortable 插件,该插件无法与较新的 jQuery 插件很好地配合。
最新版本将解决您的问题: https://github.com/angular-ui/ui-sortable/blob/c4b8e1b9ce8a7e0525aff3ca31f439e30c5b0347/src/sortable.js (哈希值与已知的工作版本 Hook 。您也可以从主版本制作本地副本)
JS 摆弄了新版本的可排序的导入。 http://jsfiddle.net/9eVEc/
请注意,您必须更改 angular.module 依赖项以包含 ['ui.sortable'] 而不仅仅是 ['ui']。
即:
var myapp = angular.module('myapp', ['ui.sortable']);
关于angularjs - AngularUI UI 可排序索引更新问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22002262/