gpt4 book ai didi

angular - 如何在两个组件之间使用 Angular7( Angular Material )拖放

转载 作者:太空狗 更新时间:2023-10-29 17:00:43 25 4
gpt4 key购买 nike

最近 Angular 在 Angular Material 中引入了拖放功能 https://material.angular.io/cdk/drag-drop/overview .

所有示例都在一个组件中描述。如何在两个不同的组件中使用它,将一个组件项拖放到另一个组件中。

最佳答案

您可以使用属性 idcdkDropListConnectedTo 链接两个列表:

组件 1:

<div cdkDropList id="list-1" cdkDropListConnectedTo="list-2" (cdkDropListDropped)="drop($event)">
<div *ngFor="let item of list" cdkDrag>{{ item }}</div>
</div>

组件 2:

<div cdkDropList id="list-2" cdkDropListConnectedTo="list-1" (cdkDropListDropped)="drop($event)">
<div *ngFor="let item of list" cdkDrag>{{ item }}</div>
</div>

如果您需要将多个列表连接到一个列表,您可以使用以下语法:[cdkDropListConnectedTo]="['list-1', 'list-2', 'list-3', 'list -4']"

链接列表后,您必须根据操作正确更新一个或两个列表。您可以像这样在 drop 函数上执行此操作:

drop(event: CdkDragDrop<string[]>) {
if (event.container.id === event.previousContainer.id) {
// move inside same list
moveItemInArray(this.list, event.previousIndex, event.currentIndex);
} else {
// move between lists
}
}

为了在列表之间移动项目,您可能希望集中跟踪列表。您可以通过使用服务、商店或其他方法来实现。

关于angular - 如何在两个组件之间使用 Angular7( Angular Material )拖放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53413175/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com