Angular7 拖放区:未触发点击事件

Angular7 drop zone: click event not triggered

在阅读了关于 angular material 7 个有关拖放交互的新功能的 blog post 之后,我决定研究示例代码。

它围绕三个列表工作,拖放事件在三个列表之间移动元素。这非常有效,当尝试修改第一个列表以使其元素变为按钮时出现问题:

<div *ngFor="let item of newItems" [cdkDragData]="item" cdkDrag>
<button (click)="clicked($event)"> {{ item }}</button>
</div>

问题是点击事件似乎没有被触发,就好像拖放事件有 "overwritten them"。

代码如下:

https://stackblitz.com/edit/mat-drag-drop-bwkdcy

编辑:找到了一个带有事件侦听器的解决方法,没什么大不了的。

尝试使用函数$event.stopPropagation()只触发这个事件

<div *ngFor="let item of newItems" [cdkDragData]="item" cdkDrag>
     <button (click)="$event.stopPropagation();clicked($event)"> {{ item }}</button>
</div>

(mousedown)="clicked($event)" 完成任务。