Angular 掉落的物品留在掉落的位置
Angular dropped item stay on dropped position
我正在使用 angular-dragdrop 将图像从 div
移动到另一个 div
。由于每个 div 都有自己的 $scope
列表,当我将一个元素从一个列表放到另一个列表时,接收该项目的列表会更新。
但是,当我将一个项目放入可放置区域时,它会转到左上角。它不会停留在我掉落的地方
这是我的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>
可放置
<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>
第二个列表 (dropable) 中的项目有一个指令 (resizable) 来为项目设置一些信息。
如何让掉落的物品停留在掉落的位置?
$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);
};
由于您可以在放置函数中捕获位置,我决定只更新一个管理每个可拖动项位置的模型。在你的 drop 函数中:
jqyoui-droppable="{onDrop: 'dropaction($event)'}"
然后在您的标记中,您可以重复这些项目并使用存储的 属性 通过内联 ng 样式定位它们。
ng-repeat="item in someList" ng-style="{'left': item.left, 'top': item.top}"
这些是我所做工作的基础,您很可能需要扩展它以适应您的使用。在我的例子中,这会捕获像素,我正在转换为百分比以获得响应位置。我还启动了一个 $uibModal,它在我放置物品之前获取更多关于我的物品的信息。
我正在使用 angular-dragdrop 将图像从 div
移动到另一个 div
。由于每个 div 都有自己的 $scope
列表,当我将一个元素从一个列表放到另一个列表时,接收该项目的列表会更新。
但是,当我将一个项目放入可放置区域时,它会转到左上角。它不会停留在我掉落的地方
这是我的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>
可放置
<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>
第二个列表 (dropable) 中的项目有一个指令 (resizable) 来为项目设置一些信息。
如何让掉落的物品停留在掉落的位置?
$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);
};
由于您可以在放置函数中捕获位置,我决定只更新一个管理每个可拖动项位置的模型。在你的 drop 函数中:
jqyoui-droppable="{onDrop: 'dropaction($event)'}"
然后在您的标记中,您可以重复这些项目并使用存储的 属性 通过内联 ng 样式定位它们。
ng-repeat="item in someList" ng-style="{'left': item.left, 'top': item.top}"
这些是我所做工作的基础,您很可能需要扩展它以适应您的使用。在我的例子中,这会捕获像素,我正在转换为百分比以获得响应位置。我还启动了一个 $uibModal,它在我放置物品之前获取更多关于我的物品的信息。