要在Angular中使用CdkDragDrop
来识别目标组件,可以按照以下步骤进行操作:
@angular/cdk
库。如果没有安装,可以运行以下命令进行安装:npm install @angular/cdk
CdkDragDrop
的组件中,导入CdkDragDrop
和moveItemInArray
函数:import { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';
items
的数组:items = ['Item 1', 'Item 2', 'Item 3'];
*cdkDrag
指令将元素标记为可拖动的。同时,使用*cdkDropList
指令将目标组件标记为可接受拖放的组件。通过cdkDropListData
属性,将目标组件的数据绑定到items
数组:
{{item}}
drop
方法来处理拖放事件。该方法接收一个CdkDragDrop
事件对象,其中包含有关拖动和放置的详细信息。在drop
方法中,我们可以使用moveItemInArray
函数来移动目标元素到新的位置:drop(event: CdkDragDrop) {
moveItemInArray(this.items, event.previousIndex, event.currentIndex);
}
完整的示例代码如下:
import { Component } from '@angular/core';
import { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';
@Component({
selector: 'app-drag-drop-example',
template: `
{{item}}
`,
styles: [
`
div[cdkDrag], div[cdkDropList] {
border: 1px solid black;
margin: 5px;
padding: 10px;
}
`
]
})
export class DragDropExampleComponent {
items = ['Item 1', 'Item 2', 'Item 3'];
drop(event: CdkDragDrop) {
moveItemInArray(this.items, event.previousIndex, event.currentIndex);
}
}
这样,当你在可拖动的元素上进行拖动并放置到目标组件上时,目标组件的数据将被重新排序。