У меня есть сетка 6, которая зависит от массивов флаеров. Внутри этой сетки у меня есть карточки для каждого флаера. Я хочу изменить положение моей карты с плитки на плитку.
Я использую ng2-dragula и прошел через все это.
Моя проблема в том, что когда я перетаскиваю одну карту из одной плитки, она переходит в другую, но текущая карта на этой плитке не занимает позицию предыдущей карты.
Я реализовал это, добавив компонент плиток, в котором есть компонент импорта флаера. Затем я использую текстовое поле из плитки для отображения положения флаера из массива флаеров, и если в флаере нет позиции, я заполняю эту плитку пустой карточкой.
Пожалуйста, помогите мне сделать это. Я был бы очень признателен. Есть ли другой способ сделать это? Я пытаюсь использовать все вещи, упомянутые в https://valor -software.com / ng2-dragula / , но ничего не работает.
Ниже мой код.
Raster.component.ts
<mat-grid-list>
<mat-grid-tile *ngFor="let tile of this.tiles" [colspan]="tile.cols" [rowspan]="tile.rows" >
<mat-card *ngIf="tile.flyer == '-1'">
.....blank card.....
</mat-card>
<mat-card class="flyer-card" *ngIf="tile.flyer !== '-1'" dragula="TILES" [(dragulaModel)]="tiles">
......Flyer cards.....
</mat-card>
<mat-grid-tile>
</mat-card-list>
Raster.component.ts
MANY_ITEMS = 'MANY_ITEMS';
subs = new Subscription();
public constructor(private dragulaService: DragulaService) {
dragulaService.createGroup("HANDLES", {
moves: (el, container, handle) => {
return handle.className === 'handle';
}
});
}
assignFlyertoTiles() {
for (const tile of this.tiles) {
for (let i = 1; i < this.flyers.length; i++) {
if (tile.text === this.flyers[i].Pos) {
tile.flyer = i.toString();
}
}
}
}