簡體   English   中英

更改拖動的dropEffect

[英]change the dropEffect of a drag

我正在使用使用默認HTML5 dnd api的ngx拖放

我有一個對象列表,當我移動它們時,我的事件和放置效果的類型為"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> 

基本上你做錯了。 首先,假設它是[]而不是(),因為它不是一個函數。 如果想輸入一個值,它就會像放置對象和對象一樣消耗很多,因此這種方法將起作用。

<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'" <-- like this
    (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> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM