angular - 拖放带有对象数组的拖放
问题描述
我有两个对象数组,一个 A 和一个 B。
我有一个列表,我打算将对象从 A 拖到 B 并从 B 拖到 A。
我的问题是,当我将所有对象从 A 拖到 B 或从 B 拖到 A 时,尝试将对象传递给空列表时,它会停止工作。
drop(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
);
}
}
解决方案
如果 box-list 为空,则附加事件的 div 的高度将为 0px:
解决方案是添加一个高度为 100% 的属性:
style="height:100%"
尝试这个 :
<div class="six" style=" height: 75%;">
<div class="card-deck cardsZone">
<div class="card myCards">
<div class="card-body" style="overflow-y: auto;" #activeList="cdkDropList"
class="box-list" style="height:100%"
cdkDropList
cdkDropListOrientation="vertical"
[cdkDropListData]="A"
[cdkDropListConnectedTo]="[inactiveList]"
(cdkDropListDropped)="drop($event)">
<div *ngFor="let nw of A" cdkDrag>
<div class="card mysmallCcards">
<div class="card-body">
<span>{{nw.name}}</span>
</div>
</div>
</div>
</div>
</div>
<div class="card myCards">
<div class="card-body" style="overflow-y: auto;" #inactiveList="cdkDropList"
class="box-list" style="height:100%"
cdkDropList
cdkDropListOrientation="vertical"
[cdkDropListData]="B"
[cdkDropListConnectedTo]="[activeList]"
(cdkDropListDropped)="drop($event)">
<div *ngFor="let pr of B" cdkDrag>
<div class="card mysmallCcards">
<div class="card-body">
<span>{{pr.name}}</span>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
推荐阅读
- windows - Windows主机的docker中的蓝牙
- kubernetes - 是否也可以在部署时触发 kubernetes cronjob?
- command-line-interface - PhpStorm 中的自定义 CLI 命令
- amazon-web-services - Serverless 订阅其他区域的 SNS
- javascript - 如何返回?
- java - 如何使用 FCM 向所有用户发送通知?
- r - 重命名不同数据框中的多列组合成一个对象
- python - 在 Keras 中是否可以再次在以下自定义层中使用神经网络的输入?
- excel - 遍历 Excel WORKBOOK 的文件系统,并使用 Apple Script 操作每个 WORKSHEET!(苹果系统)
- go - 通道关闭后如何关闭 goroutines