你的意思是多個獨立的拖拽&滴?就像用一個手指拖動一個元素,用另一個手指拖動第二個元素一樣?
那不是由dragula也不dragular支持,但我工作的新圖書館,這將是可能的,但還是現在正在進行中:/
我不知道任何其他庫支持它。
EDIT(16年11月27日):
我已經更新了你的筆http://codepen.io/luckylooke/pen/zodmEO
angular.module("testDnD", ["dragularModule"]).
controller("test", ['$scope', 'dragularService', function($scope, dragularService) {
$scope.selected = [];
$scope.filter = [];
$scope.testObj = [{...}];
$scope.modelClickData = function(test) {
console.log(test);
$scope.popdata = test;
};
$scope.modelSelect = function(test) {
test.selected = !test.selected;
if (test.selected)
$scope.selected.push(test);
else
$scope.selected.splice($scope.selected.indexOf(test), 1);
// console.log('selected', test);
};
var containerLeft = document.querySelector('#thumbnailTST');
var containerRight = document.querySelector('#filler');
dragularService.cleanEnviroment();
dragularService([containerLeft, containerRight], {
copy: true,
containersModel: [$scope.testObj, $scope.filter],
scope: $scope
});
$scope.$on('dragularcloned', function() {
var mirror = $('.gu-mirror');
if ($scope.selected.length > 1 && mirror.length) { // is multiple drag
mirror.addClass('multipledrag');
}
});
$scope.$on('dragulardrop', function(e, el, targetcontainer, sourcecontainer, conmodel, elindex, targetmodel, dropindex) {
if ($scope.selected.length > 1) { // is multiple drag
$scope.selected.forEach(function(item) {
if (item != $scope.testObj[elindex]) {
var clone = {};
clone = $.extend(true, clone, item);
delete clone.$$hashKey;
$scope.filter.splice(++dropindex, 0, clone);
}
});
}
console.log($scope.filter);
});
}])
感謝@Luckylooke的回覆。我急切地等着你回答這個問題。通過多次拖放我意味着我將能夠選擇多個元素,然後將其全部拖放到目標容器中。 – pBanyal
@pBanyal可以通過dragula或dragula完成,創建小提琴/ codepen/...與您的sceanrio,我可以幫助你解決這個問題;) – Luckylooke
道歉@Luckylooke回答太遲。對我來說有一些違規的最後期限。這是我的筆http://codepen.io/pBanyal/pen/ObjQPg,請讓我知道是否需要其他任何東西。 – pBanyal