angular - Angular CDK拖放添加新元素不移动
问题描述
试图制作一个拖放布局创建者,但遇到了一些与角度 CDK 拖放库有关的问题。我有以下观点
我想要做的是将小部件列表中的一个项目拖到卡片中,然后根据小部件类型添加一个小部件。我的问题是,当我拖动卡片的 cdkDropList 时,它会将项目从小部件列表中移动,而我不想这样做。这是我的小部件列表代码:
<mat-list dense
cdkDropList
cdkDropListSortingDisabled>
<mat-list-item class="widget-bar-item" *ngFor="let widget of widgets"
cdkDrag
[cdkDragData]="widget.type">
<h3 matLine>{{ widget.title }}</h3>
<p matLine>
<span class="widget-list-description">{{ widget.description }}</span>
</p>
<mat-icon matListIcon cdkDragHandle class="mat-24">drag_indicator</mat-icon>
<div *cdkDragPreview fxLayout="row" fxLayoutAlign="strat center">
<mat-icon matListIcon class="mat-24">drag_indicator</mat-icon>
<div fxLayout="column" fxLayoutAlign="start stretch">
<h3 matLine>{{ widget.title }}</h3>
<p matLine>
<span class="widget-list-description">{{ widget.description }}</span>
</p>
</div>
</div>
</mat-list-item>
</mat-list>
这是卡片下拉列表代码:
<div class="w-100-p h-100-p template-column"
fxLayout="column"
fxLayoutAlign="start stretch"
cdkDropList
cdkDrdopListOrientation="vertical"
(cdkDropListDropped)="widgetDropped($event)">
Column Widget is there
</div>
现在 widgetDropped() 函数只将数据打印到控制台。我知道我必须抓取数据并将其添加到我的布局中,但现在试图弄清楚如何将原始数据保持在原位置而不是实际移动它,而只是将其用作数据源。
解决方案
推荐阅读
- sass - 实时服务器不显示来自 WebStorm 中 SCSS 的更新
- c++ - 为什么我的代码没有显示我的 TButton 数组?
- google-calendar-api - Google 日历提醒共享表
- javascript - Rselenium 无法单击所有单选按钮(仅其中一些)
- c# - 如何在 .asp proyect 中打印到控制台?
- mysql - 如何在 mysql 数据库中搜索部分条目?
- arrays - 嵌套数组猫鼬上的推/拉值
- java - 如何使用 Retrofit Android 从 wordpress-rest-api 获取令牌?
- javascript - 如何删除大量数组中的重复条目(javascript)
- sql - 如何过滤包含低于某个版本的android和ios内部版本号的varchar