当我在input中拖曳时,我如何防止拖拽。我只想让pink-meat扮演drag-handle的角色。
html
<div cdkDropList class="example-list" (cdkDropListDropped)="drop($event)">
<div class="example-box" *ngFor="let movie of movies" cdkDrag>
<input [placeholder]="movie" (click)="stopIt($event)" (mousemove)="stopIt($event)">
</div>
</div>js
drop(event: CdkDragDrop<string[]>) {
moveItemInArray(this.movies, event.previousIndex, event.currentIndex);
}
stopIt(e) {
e.stopPropagation();
}到目前为止,它还不起作用。
发布于 2019-08-15 18:51:40
发布于 2019-08-15 19:27:38
我最后使用了一个指令和cdkDropListDisabled,因为我有一堆应该stop dragging的元素。
js
import {Directive, HostListener} from "@angular/core";
@Directive({
selector: "[stopDragging]"
})
export class StopDragging
{
@Input() stopDragging: {bool: boolean};
@HostListener('mouseenter', ['$event'])
public disable(event: any): void
{
debugger;
this.stopDragging.bool = true
}
@HostListener('mouseleave', ['$event'])
public enable(event: any): void
{
debugger;
this.stopDragging.bool = false;
}
}模板
<ELEMENT ... [cdkDropListDisabled]="dragListDisabled.bool">
<input [stopDragging]="dragListDisabled">
...https://stackoverflow.com/questions/57514531
复制相似问题