如果列表中有一個正被ng重複的過濾器,那麼似乎UI可分類(https://github.com/angular-ui/ui-sortable)插件無法正常播放。拖放操作不能按預期工作。UI-可以使用Angular過濾器對ng-repeat進行排序
這是由這兩個小提琴所示:
第一:已過濾器 - 拖放不會停留在原地。
http://jsfiddle.net/Lvc0u55v/2886/
HTML:
<div ng-controller="Controller">
<ul ui-sortable="sortableOptions" id="test" ng-model="items">
<li class="line" ng-repeat="item in items | filter: myFilter">
{{item.name}}
</li>
</ul>
</div>
JS:
var myApp = angular.module('myApp',['ui.sortable']);
myApp.controller('Controller', ['$scope', function($scope) {
$scope.name = 'Superhero';
$scope.items = [
{name: 'TEST'},
{name: 'TEST2'},
{name: 'TEST3'},
{name: 'TEST4'},
{name: 'TEST5'},
{name: 'TEST6'},
{name: 'TEST7'},
{name: 'TEST8'}
]
$scope.myFilter = function (item) {
return item.name !== 'TEST';
};
$scope.sortableOptions = {
opacity: '0.8',
axis: 'y',
tolerance: 'pointer',
}
}]);
二:有沒有過濾器 - 按預期工作。
JS SAME,
HTML:
<div ng-controller="Controller">
<ul ui-sortable="sortableOptions" id="test" ng-model="items">
<li class="line" ng-repeat="item in items">
{{item.name}}
</li>
</ul>
</div>
http://jsfiddle.net/Lvc0u55v/2887/
我會在他們的github回購爲好,但如果任何人有周圍的工作,這將是偉大的創造一個問題!
但是:不要忘了這個解決方案將刪除數組中的項目。您可以使用一個範圍數組和一個javascript數組。原始數據在您的javascript數組中。 –