在Angular 7中禁用目标cdkDropList中的元素移动/移动,可以通过以下步骤实现:
npm install --save @angular/material @angular/cdk
import { CdkDragDrop, moveItemInArray, transferArrayItem } from '@angular/cdk/drag-drop';
cdkDropList
指令来创建一个可拖拽的容器,并设置cdkDropListDisabled
属性为一个布尔值来控制是否禁用元素的移动/移动。例如:<div cdkDropList [cdkDropListDisabled]="isDisabled" (cdkDropListDropped)="onDrop($event)">
<div cdkDrag *ngFor="let item of items">{{item}}</div>
</div>
isDisabled
来控制是否禁用元素的移动/移动。例如:isDisabled: boolean = false;
onDrop
方法来处理元素的移动/移动事件。在该方法中,你可以根据需要对元素进行处理,例如重新排序数组或移动元素到另一个容器。以下是一个示例:onDrop(event: CdkDragDrop<string[]>) {
if (event.previousContainer === event.container) {
// 在同一个容器内部移动元素
moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);
} else {
// 在不同容器之间移动元素
transferArrayItem(event.previousContainer.data, event.container.data, event.previousIndex, event.currentIndex);
}
}
在上述示例中,event.previousContainer
表示之前的容器,event.container
表示当前的容器,event.previousIndex
表示元素在之前容器中的索引,event.currentIndex
表示元素在当前容器中的索引。
这样,当isDisabled
变量为true
时,目标cdkDropList
中的元素将被禁用移动/移动。当isDisabled
变量为false
时,元素将可以自由移动/移动。
推荐的腾讯云相关产品:腾讯云云服务器(CVM)和腾讯云对象存储(COS)。
领取专属 10元无门槛券
手把手带您无忧上云