繁体   English   中英

根据用户生成垫卡数量

[英]Generate number of mat-cards depending on te user

我得到了简单的 mat-cards 拖放:

<div id="pagewrapper">
  <section class="todos-section-wrapper">

    <mat-card class="card">
      <mat-card-header class="card-header">
        <mat-card-title class="card-title">Team</mat-card-title>
      </mat-card-header>
      <mat-card-content class="card-content">

        <div cdkDropList #todoList="cdkDropList" [cdkDropListData]="todos" [cdkDropListConnectedTo]="[completedList, roomOneList]"
          class="list" (cdkDropListDropped)="drop($event)">
          <div class="todo-item" *ngFor="let todo of todos" cdkDrag>{{todo}}</div>
        </div>

      </mat-card-content>
    </mat-card>

    <mat-card class="card">
      <mat-card-header class="card-header">
        <mat-card-title class="card-title">Room 1</mat-card-title>
      </mat-card-header>
      <mat-card-content class="card-content">

        <div cdkDropList #completedList="cdkDropList" [cdkDropListData]="completed"
          [cdkDropListConnectedTo]="[todoList, roomOneList]" class="list" (cdkDropListDropped)="drop($event)">
          <div class="todo-item" *ngFor="let roomTwo of completed" cdkDrag>{{roomTwo}}</div>
        </div>

      </mat-card-content>
    </mat-card>

    <mat-card class="card">
      <mat-card-header class="card-header">
        <mat-card-title class="card-title">Room 2</mat-card-title>
      </mat-card-header>
      <mat-card-content class="card-content">

        <div cdkDropList #roomOneList="cdkDropList" [cdkDropListData]="roomOne"
          [cdkDropListConnectedTo]="[completedList, todoList]"
          class="list" (cdkDropListDropped)="drop($event)">
          <div class="todo-item" *ngFor="let roomOne of roomOne" cdkDrag>{{roomOne}}</div>
        </div>

      </mat-card-content>
    </mat-card>


  </section>
</div>

还有我的 app.componen.ts

import { Component } from '@angular/core';
import {CdkDragDrop, moveItemInArray, transferArrayItem} from '@angular/cdk/drag-drop';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.scss']
})
export class AppComponent {

  todos: string[] = [
    'Jan Nowak',
    'Jan Kowalski',
    'Monika Nowak',
    'Radek Testowy',
    'Marek Tester',
    'Marian Kowalski'
  ];

  completed: string[] = [
    'Marek Pospieszalski'
  ];

  roomOne: string[] = [
    'Mariusz Kowalski'
  ];


  drop(event: CdkDragDrop<string[]>) {

    if (event.previousContainer === event.container) {

      moveItemInArray(
        event.container.data,
        event.previousIndex,
        event.currentIndex
      );

    } else {

      transferArrayItem(
        event.previousContainer.data,
        event.container.data,
        event.previousIndex,
        event.currentIndex
      );

    }

    console.log('todos: '+this.todos);
    console.log('completed: '+this.completed);
    console.log('roomOne: ' + this.roomOne);
    
  }
  
 
}

实际上我有 2 个垫子卡:房间 1 和房间 2 我的目标是实现我有简单的用户输入器,我可以在其中询问您想要多少个房间,然后用户输入例如 4 个房间,他得到了 4 个垫子卡然后他可以把人放在房间里。

如何动态生成垫卡?

您必须使用 *ngFor 动态渲染 n 张卡片。 看看这个例子: https://stackblitz.com/edit/angular-ivy-iqvkks?file=src%2Fapp%2Fapp.component.ts

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM