2

情况:

大家好。在我的应用程序中,我有一个显示在表格内的项目列表。

我正在使用angular-dragdrop能够将这些项目拖到垃圾箱并删除它们。

一切正常:在我将项目放在垃圾箱上后,该功能被触发并且项目被删除。

但是有一个问题:在删除项目后,项目列表会被刷新。但是发生的事情是一个项目仍在放置区域中。并且由于已删除的项目不是列表的一部分,因此以下项目将取代它..

此项目应显示在列表中,而不是在放置区域上方..

编码:

<tr ng-repeat="item in list_items track by $index">

     <td>
        <span data-drag="true" data-jqyoui-options="{revert: 'invalid'}" jqyoui-draggable="{index: {{$index}}, onStart:'set_item_id_to_drag({mail_id: email.mail_id})'}">
        <a > {{item.name}} </a>
        </span>
    </td>

 </tr>

<span data-drop="true" data-jqyoui-options jqyoui-droppable="{onDrop:'email_dragged_delete()'}">
    BIN
</span>


$scope.email_dragged_delete = function( event, ui )
{
   var item_id = $rootScope.item_id_to_drag.item_id;
    $http({

        url: base_url + 'api/item_delete',
        data: { item_id: item_id },
        method: "POST",

     }).success(function (data) {

        delete $rootScope.email_id_to_drag;

        var result = ItemsService.list_items( $stateParams.mail_account_id );
        result.then( function( data ) {

            $rootScope.list_items = data;

        });

     });

}

$scope.set_item_id_to_drag = function( event, ui, item_id )
{
    $rootScope.item_id_to_drag = item_id;
}

问题:

是否可以在拖动元素并触发事件后清空放置区域? 所以要避免列表中的另一个元素取代它的位置?

非常感谢!

4

0 回答 0