【发布时间】:2020-03-19 14:50:57
【问题描述】:
我希望能够使用 CDK 拖放将来自不同容器的多个元素添加到一个容器中。是否可以从本质上对不同的项目进行颜色编码。现在,当我拖动一个项目时,它会从其放入的容器中继承样式,我希望它保持其在原始容器中的颜色。
HTML
<h2>Studio 6</h2>
<div cdkDropList #donestudio6="cdkDropList" [cdkDropListData]="studio6"
[cdkDropListConnectedTo]="[moviesList, toglist, ppolist]" class="movie-list"
(cdkDropListDropped)="onDrop($event)">
<div class="movie-block" *ngFor="let item of studio6" cdkDrag>{{item}}</div>
</div>
<div id="first" class="bottompanel">
<h2>People</h2>
<div cdkDropList #moviesList="cdkDropList" [cdkDropListData]="MoviesList"
[cdkDropListConnectedTo]="[doneMovieList, donestudio2, donestudio3, donestudio4,
donestudio5, donestudio6, donestudio7]" class="movie-list" (cdkDropListDropped)="onDrop($event)">
<div class="peopleblock" *ngFor="let moviesList of MoviesList" cdkDrag>{{moviesList}}</div>
</div>
CSS
.movie-block {
padding: 10px 5px;
border-bottom: solid 1px #ccc;
color: rgba(0, 0, 0, 0.87);
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
box-sizing: border-box;
cursor: move;
background: white;
font-size: 12px;
}
.peopleblock {
padding: 10px 5px;
border-bottom: solid 1px #ccc;
color: rgba(0, 0, 0, 0.87);
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
box-sizing: border-box;
cursor: move;
background: white;
font-size: 12px;
background-color: rgb(53, 201, 206);
}
【问题讨论】:
-
你可以做到这一点,“颜色”不依赖于元素所在的“div”(使用 [style.color]="item.property",例如)记住拖放它只是不同数组的交换元素和 Angular 显示元素。就像你有两个输入并使用 splice 根据两个输入的值交换两个数组的元素
-
我不太清楚你的意思。我希望人组的背景即使在进入工作室组时也能保留下来。请您进一步解释一下吗?
标签: html css angular web-applications angular-cdk-drag-drop