Angular Droplists mit Snackbar

_Phoenix_

Cadet 3rd Year
Registriert
Juni 2020
Beiträge
38
Hallo zusammen,
ich habe folgendes Grundproblem, ich habe eine eine cdk-drag-list im Hauptkomponenten des Tools und eine weitere in einem Komponennten der als Snackbar erscheint sobald ein Element aus der"Hauptliste gedragged wird.
Meine Idee war eigentlich die Liste des Snackbarcomponents in einem Service zu registrieren und den connectedTo paramater der Hauptliste danach auf den getter der snackbar zu setzen.
 
Zuletzt bearbeitet:
Find ich gut.
aka Was ist deine Frage?
 
Da ist wohl etwas verloren gegangen:

Hallo zusammen,
ich habe folgendes Grundproblem, ich habe eine eine cdk-drag-list im Hauptkomponenten des Tools und eine weitere in einem Komponennten der als Snackbar erscheint sobald ein Element aus der"Hauptliste gedragged wird.
Meine Idee war eigentlich die Liste des Snackbarcomponents in einem Service zu registrieren und den connectedTo paramater der Hauptliste danach auf den getter der snackbar zu setzen.

Hauptkomponent.html:
Code:
<div class="project-time" cdkDropList (cdkDropListDropped)="drop($event)" #projectsList="cdkDropList" [cdkDropListConnectedTo]="[this._projectPlanningService.getDeleteArea()]">
    <app-trainee-project-time cdkDrag [cdkDragData]="traineeProject" [tpt]="traineeProject" (cdkDragDropped)="delete($event)" (cdkDragStarted)="showDeleteArea()">
    </app-trainee-project-time>
</div>

Hauptkomponent.ts:
Code:
@ViewChild('projectsList') projectsList: CdkDropList;
snackBar: MatSnackBarRef<TptDeleteAreaComponent>;


constructor(private _snackBar: MatSnackBar) {
}

delete($event: CdkDragDrop<any>) {
    this.snackBar.dismiss();
    this.traineeProject = null;
    console.log($event)
  }

  showDeleteArea() {
    this.snackBar = this._snackBar.openFromComponent(TptDeleteAreaComponent, {
      panelClass: ['delete-area']
    });

    this.snackBar.afterOpened().subscribe(() => {
      console.log(this.projectsList);
    });

Snackbar.html
Code:
<div id="deleteArea" cdkDropList (cdkDropListDropped)="dropped($event)" #deleteArea="cdkDropList">
    <mat-icon>delete</mat-icon>
  </div>

Snackbar.ts
Code:
@ViewChild('deleteArea') deleteArea: CdkDropList;

  constructor(private _projectPlanningService: ProjectPlanningService) {
  }

  ngOnInit(): void {
  }

  ngAfterViewInit(): void {
    this._projectPlanningService.setDeleteArea(this.deleteArea);
  }

  dropped($event) {
    console.log($event)
  }

service.ts:
Code:
deleteArea: CdkDropList;

  setDeleteArea(dropList: CdkDropList) {
    this.deleteArea = dropList;
  }

  getDeleteArea(): CdkDropList {
    return this.deleteArea;
  }

Was mache ich falsch?
 
Zurück
Oben