更改拖动的dropEffect

时间:2018-11-10 05:15:17

标签: javascript angular drag-and-drop

我正在使用ngx drag and drop,它使用默认的HTML5 dnd api。

我有一个对象列表,当我移动它们时,我的事件和放置效果的类型为"copy" 我正在尝试寻找一种使事件成为"move"的方法,因为那应该是什么拖放动作,我希望触发我的OnMove事件

我开始拖动时尝试更改

  onDragStart(event:DragEvent, card:KanbanCard) {
    event.dataTransfer.dropEffect = "move";
    event.preventDefault();
} 

但这不起作用

<div class="kanban-column-container">
<p class="title"><strong>{{column.name}}</strong></p>
<button mat-button (click)="addCard();">Add Card</button>
<div class="list"  
dndDropzone
(dndDrop)="onDrop($event)">
    <!-- PLACEHOLDER for drag & drop. Removed on DOM LOAD AUTOMATICALLY -->
    <div class="card-placeholder" dndPlaceholderRef>
        placeholder
    </div> 

    <div *ngFor="let card of _cards"
    [dndDraggable]="card"
    (dndEffectAllowed)="move"
    (dndStart)="onDragStart($event, card)"
    (dndCanceled)="onDragCanceled($event, card)"
    (dndMoved)="onMoved($event)"
    (dndEnd)="onDragEnd($event, card)"
    [hidden]="card.hidden">
        <kanban-card-component [card]="card"></kanban-card-component>
    </div>
</div> 

1 个答案:

答案 0 :(得分:1)

基本上你做错了。 首先,假设它是[]而不是(),因为它不是一个函数。 secound,如果您想输入一个值,它就像您放置的和Object一样,因此可以使这种方法起作用。

assetID