Как настроить перетаскивание элементов в массив, готовый для RESTFUL API - PullRequest
0 голосов
/ 31 октября 2019

так что в основных терминах я хочу создать объект с помощью:

 {
    starting_position: {
       id: 1
     }
 }

перетащить объект и, если его уронить, установить объект на:

{
    starting_position: {
       id: 2
     }
 }

НоЯ не уверен, что делать с модулем углового перетаскивания.

Вот мой код:

app.component.ts

squad = 'cdk-drop-list-0';
team = 'cdk-drop-list-1';
bench ='cdk-drop-list-2';

    drop(event: CdkDragDrop<string[]>, player: HomeTeam) {
        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);
        }

        if (event.previousContainer.id == this.squad && event.container.id == this.team) {
          console.log('squad player to starting lineup');
        //how do I manipulate the player object to be able to alter the starting position id here?
        } 
        if (event.previousContainer.id == this.team && event.container.id == this.bench) {
          console.log('starting player has been benched');
//how do I manipulate the player object to be able to alter the starting position id here?
        } 
        if (event.previousContainer.id == this.bench && event.container.id == this.team)  {
          console.log('bench player to starting');
//how do I manipulate the player object to be able to alter the starting position id here?
        }
        if (event.previousContainer.id == this.bench && event.container.id == this.squad)  {
          console.log('bench player has been removed from lineup');
        }
        if (event.previousContainer.id == this.squad && event.container.id == this.bench)  {
          console.log('squad player has been put on the bench');
//how do I manipulate the player object to be able to alter the starting position id here?
        }
        if (event.previousContainer.id == this.team && event.container.id == this.squad)  {
          console.log('starting player has been removed from lineup');
//how do I manipulate the player object to be able to alter the starting position id here?
        }
      }

класс данных

export class HomeTeam {
    id: number;
    age: number;
    avatar: {
        data: {
            url: string;
        }
    }
    name: string;
    goals: string;
    caps: string;
    height: string;
    captain: string;
    squad_number: number;
    nationality: {
        data: {
            country: string;
        }
    }
    field_position: {
        data: {
            position: string
        };
    };
    starting_position: {
        data: {
            id: number;
            starting_position: string;<-- this I need to drill to, to switch from 'squad', to 'starting', and 'bench' via id
        }
    };
    yellow: number;
    red: number; 
}

Все элементы перетаскиваются правильно, а журналы консоли показывают, что путь перетаскивания для каждого события задан правильно, ноВначале я надеялся, что кто-то знает способ манипулирования объектами данных, которые удаляются, когда-то внутри новой группы списков.

Также будет ли размещение этой манипуляции внутри метода отбрасывания лучшим способом для этого?

...