Здравствуйте, @Ashwyb Хортон, спасибо за ваш ответ.У меня есть один компонент под названием gruposcomponent.ts, .html ... в этом файле у меня есть все HTML, и я пытаюсь ...
import { ComponentFactoryResolver, Component, OnInit, Input, ViewChild, Directive, ViewContainerRef } from '@angular/core';
import { copyArrayItem, CdkDragStart, CdkDragExit, CdkDragEnter, CdkDragEnd, DragDropModule, CdkDragDrop, moveItemInArray, transferArrayItem, CdkDrag } from '@angular/cdk/drag-drop';
@Component({
selector: 'app-grupos',
templateUrl: './grupos.component.html',
styleUrls: ['./grupos.component.css']
})
export class GruposComponent implements OnInit {
constructor(private factory: ComponentFactoryResolver){
}
@ViewChild('create', { read: ViewContainerRef }) container: ViewContainerRef;
create(): void {
const self = this;
self.container.clear();
self.container.createComponent(self.factory.resolveComponentFactory(GruposComponent));
}
ngOnInit() {
}
papelera = [];
pacientesgrupouno = [];
terapeutasgrupouno = [];
grupo2 = [];
terapeutas = [
'Ana lopez',
'Erica sanchez',
'Marta Sanchez',
'Mario Gonzales',
];
pacientes = [
'Emilio Escobar',
'Daniel Bobis',
'Gustavo Verdejo',
'Pablo Ramos'
];
droptrash(event: CdkDragDrop<string[]>) {
if (event.previousContainer === event.container) {
console.log('dropped Event', `> dropped '${event.item.data}' into '${event.container.id}'`);
moveItemInArray(
event.container.data,
event.previousIndex,
event.currentIndex);
} else {
console.log('dropped Event', `> dropped '${event.item.data}' into '${event.container.id}'`);
transferArrayItem(
event.previousContainer.data,
event.container.data,
event.previousIndex,
event.currentIndex);
}
}
drop(event: CdkDragDrop<string[]>) {
if (event.previousContainer === event.container) {
console.log('dropped Event',`> dropped '${event.item.data}' into '${event.container.id}'`);
moveItemInArray(
event.container.data,
event.previousIndex,
event.currentIndex);
} else {
console.log('dropped Event',`> dropped '${event.item.data}' into '${event.container.id}'`);
copyArrayItem(
event.previousContainer.data,
event.container.data,
event.previousIndex,
event.currentIndex);
}
}
saveGroup(){
console.log(this.grupo2);
}
}
, и мой HTML-код ..
<div class="row" id="create-groups">
<!-- PRIMERA COLUMNA -->
<div class="col-md-8">
<div class="form-group top-search">
<div class="form-group has-add-group">
<span class="fas fa-users form-control-group"></span>
<input type="text" (keydown.enter)="create()" class="form-control" placeholder="Nombre del nuevo grupo...">
</div>
</div>
<!-- PRIMER BLOQUE -->
<template #create></template>
<div class="card-top">
<div class="card-header">
<span><i class="fas fa-users"></i> Grupo de usuarios 1</span>
<div class="card-header-actions save-button">
<a href="" class="card-header-action" target="_blank">
<small class="text-muted" (click)='saveGroup()'><i class="far fa-check-circle"></i> GUARDAR</small>
</a>
</div>
</div>
<div class="card-body">
<div class="terapeutas-box" cdkDropList #pendingList1="cdkDropList" [cdkDropListData]="terapeutasgrupouno" [cdkDropListConnectedTo]="[pendingList3]" (cdkDropListDropped)="drop($event)">
<div class="grupo-terapeuta" *ngFor="let item of terapeutasgrupouno" [cdkDragData]="item" cdkDrag><i class="fas fa-user-md fa-icon"></i> {{item}}</div>
<p class="dragdrop" *ngIf="terapeutasgrupouno == ''"><i class="fas fa-user-md fa-icon"></i> Arrastra un terapeuta</p>
</div>
<div class="pacientes-box" cdkDropList #pendingList="cdkDropList" [cdkDropListData]="pacientesgrupouno" [cdkDropListConnectedTo]="[pendingList3]" (cdkDropListDropped)="drop($event)">
<div class="grupo-paciente" *ngFor="let item of pacientesgrupouno" [cdkDragData]="item" cdkDrag><i class="fas fa-user-injured fa-icon"></i> {{item}}</div>
<p class="dragdrop" *ngIf="pacientesgrupouno == ''"><i class="fas fa-user-injured fa-icon"></i> Añade pacientes</p>
</div>
</div>
</div>
<!-- SEGUNDO BLOQUE -->
<div class="card card-bottom">
<div class="card-header">
<span><i class="fas fa-users"></i> Grupo de usuarios 2</span>
</div>
<div class="card-body" cdkDropList #pendingList2="cdkDropList" [cdkDropListData]="grupo2" [cdkDropListConnectedTo]="[pendingList3]" (cdkDropListDropped)="drop($event)">
<div class="grupo-paciente" *ngFor="let item of grupo2" [cdkDragData]="item" cdkDrag><i class="fas fa-user-injured fa-icon"></i> {{item}}</div>
</div>
</div>
</div>
<!-- SEGUNDA COLUMNA -->
<div class="col-md-2">
<!-- PRIMER BLOQUE -->
<div class="card card-bottom">
<div class="card-header">
<span><i class="fas fa-users"></i> Pacientes</span>
</div>
<div class="card-body" cdkDropList #pacientesList="cdkDropList" [cdkDropListData]="pacientes" [cdkDropListConnectedTo]="[pendingList, pendingList2]" (cdkDropListDropped)="drop($event)">
<div class="form-group">
<div class="form-group has-search">
<span class="fa fa-search form-control-feedback"></span>
<input type="text" class="form-control" placeholder="Buscar...">
</div>
</div>
<div class="paciente" *ngFor="let item of pacientes" [cdkDragData]="item" cdkDrag><i class="fas fa-user-injured fa-icon"></i> {{item}} </div>
</div>
</div>
</div>
<!-- TERCERA COLUMNA -->
<div class="col-md-2">
<!-- PRIMER BLOQUE -->
<div class="card card-bottom">
<div class="card-header">
<span><i class="fas fa-users"></i> Terapeutas</span>
</div>
<div class="card-body" cdkDropList #terapeutasList="cdkDropList" [cdkDropListData]="terapeutas" [cdkDropListConnectedTo]="[pendingList1]" (cdkDropListDropped)="droptrash($event)">
<div class="form-group">
<div class="form-group has-search">
<span class="fa fa-search form-control-feedback"></span>
<input type="text" class="form-control" placeholder="Buscar...">
</div>
</div>
<div class="terapeuta" *ngFor="let item of terapeutas" [cdkDragData]="item" cdkDrag><i class="fas fa-user-md fa-icon"></i> {{item}} </div>
</div>
</div>
<!-- SEGUNDO BLOQUE -->
<div class="card card-bottom card-trash">
<div class="card-header">
<span><i class="fas fa-trash"></i> Papelera</span>
</div>
<div class="card-trash-body" cdkDropList #pendingList3="cdkDropList" [cdkDropListData]="papelera" [cdkDropListConnectedTo]="[pendingList, pendingList2]" (cdkDropListDropped)="droptrash($event)">
<img class="papelera" src="assets/images/trash.svg" alt="papelera">
</div>
</div>
</div>
</div>