带有CD标签组垂直的角度CDK拖放

时间:2019-08-09 15:59:09

标签: angular angular-material angular-cdk mat-tab

因此,我创建了mat选项卡组,该选项卡组当前仅适用于选项卡,但是子选项卡存在我将以gif显示的问题。 在其他所有情况下,都只能将1,2子选项卡拖放到它们上。

https://gfycat.com/corruptwarmheartedamericanavocet

我尝试了所有操作,清除了css更改css,但没有任何效果,总是事件容器和previousContainer相同->拖动了元素。

<mat-tab-group vertical flex="1" class="vertical-mat-tab" #matGroupSubTab >
  <mat-tab *ngFor = "let subtab of arraySubtabs; let index = index">
    <ng-template matTabLabel>
      <div class="dropBox" [id]="'list-'+index" 
          cdkDropList
          cdkDragRootElement=".mat-tab-label"
          cdkDropListOrientation="vertical"
          (cdkDropListDropped)="dropSubTab($event)" 
          [cdkDropListConnectedTo]="getAllListSubTabConnections(index)">
        <div cdkDragBoundary=".mat-tab-labels" cdkDrag>{{ subtab.name }}</div>   
      </div>   
    </ng-template>
  </mat-tab>
</mat-tab-group>
  getAllListSubTabConnections (index) {
    const connections = [];
    for (let i = 0; i < this.arraySubtabs.length; i++) {
      if (i !== index) {
        connections.push('list-' + i);
      }
    }
    return connections;
  }

  dropSubTab (event: CdkDragDrop<string[]>) {
    const previousIndex = parseInt(event.previousContainer.id.replace('list-',''), 10);
    const newIndex = parseInt(event.container.id.replace('list-',''), 10);
    if (!Number.isNaN(previousIndex) && !Number.isNaN(newIndex) &&
      previousIndex !== undefined && newIndex !== undefined && previousIndex !== newIndex) {
      moveItemInArray(this.arraySubtabs, previousIndex, newIndex);
    }
  }

1 个答案:

答案 0 :(得分:0)

现在一切正常。

问题是水平和垂直选项卡具有相同的[id] =“'list-'+ index”。 为什么我该死的如此愚蠢?