Я объясняю как закрытая книга. Идея в том, что класс применяется к «div», который мы хотим перетащить. Чтобы получить его, мы можем добавить новое свойство к нашим объектам. Представьте, что у вас есть что-то вроде
people:any[] = ['Alice','George','Peter','John'];
movies:any[] = ['Start Wars','The thing','It'];
Мы можем сделать что-то вроде
this.people=this.people.map(x=>({name:x,type:1}))
this.movies=this.movies.map(x=>({name:x,type:2}))
Если массив является массивом объектов, просто добавьте новую переменную, используя forEach
this.people.forEach(x=>{x.type=1})
Теперь мы можем использовать два класса
.peopleClass
{
background:yellow!important;
}
.movieClass
{
background:red!important;
color:white!important;
}
И использовать "тип", чтобы добавить этот класс в div
<div class="example-container">
<h2>Studio</h2>
<div
cdkDropList
#studioList="cdkDropList"
[cdkDropListData]="studio"
class="example-list"
(cdkDropListDropped)="drop($event)">
<!--see how we use ngClass to add a class to the div-->
<div class="example-box"
[ngClass]="{'peopleClass':item.type==1,'movieClass':item.type==2}"
*ngFor="let item of studio" cdkDrag>
<span >{{item.name}}
</span>
</div>
</div>
</div>
Вы можете увидеть пример в stackblitz