Угловой упавший предмет остается в выпавшем положении

Я использую угловое перетаскивание для перемещения изображений с div другому div, Поскольку у каждого div есть свой $scope list, когда я перетаскиваю элемент из одного списка в другой, список, который получает элемент, обновляется.

Однако, когда я бросаю предмет в область броска, он уходит в верхний левый угол. Это не остается там, где я упал

введите описание изображения здесь

это мой HTML

Перетаскиваемый

<div class="sand-image" ng-repeat="item in filtered = (products  | filter: {cat : config.category.id}:true) | 
itemsPerPage: pageSize" 
current-page="currentPage"
data-drag="true" 
data-jqyoui-options="{revert: 'invalid', helper: 'clone'}" 
ng-model="products" 
jqyoui-draggable="{index:$index,applyFilter:'{{getIndex(item)}}',
placeholder: 'keep',deepCopy :true}"
></div>

Droppable

<div class="wrap" id="sand-ground" 
data-drop="true" 
ng-model='box' 
jqyoui-droppable="{multiple:true, deepCopy:true ,onOver :'stop',containment :'position'}" >
<!-- item html -->
 <div class="draggable" ng-repeat="item in box track by $index" resizable  ><img src="{{item.url}}" ></div>

Элемент во втором списке (выпадающий) имеет директиву (изменяемый размер) для установки некоторой информации для элемента.

Как сделать так, чтобы упавший предмет оставался в упущенном положении?

1 ответ

Решение
$scope.dropAction = function(event, ui) {
     console.log('left:', ui.position.left, 'top:', ui.position.top, ui);
     // update model
     var newItem = {
          left:, ui.position.left, 
          top:, ui.position.top
     };
     $scope.someList.push(newItem);
};

Поскольку вы можете фиксировать позицию в вашей функции выпадения, я решил просто обновить модель, которая управляет позициями каждого перетаскиваемого элемента. В вашей функции выпадения:

jqyoui-droppable="{onDrop: 'dropaction($event)'}" 

Затем в вашей разметке вы можете повторять элементы и использовать сохраненное свойство, чтобы расположить их с помощью встроенного стиля ng.

ng-repeat="item in someList" ng-style="{'left': item.left, 'top': item.top}"

Это основы того, что я сделал, и вам, скорее всего, придется расширить его, чтобы он соответствовал вашим потребностям. В моем случае это захватывает пиксели, и я конвертирую в проценты, чтобы получить отзывчивые позиции. Я также запускаю $uibModal, который берет больше информации о моем предмете, прежде чем я его размещу.