Самый простой способ получить это - использовать один JSON и переставить все в этом.Наконец, вы можете получить всю информацию от них.
Но, конечно, вы можете использовать сервисы dragula для получения этих данных.
Вы можете подписаться на .drag
событие и получать информацию о source
из этого.
this.dragula$.add(this.dragulaService.drag('ITEMS')
.subscribe(({name, el, source}) => {
console.log(source); // information about source group
})
);
А для получения информации о целевом столбце вы можете использовать событие .drop
:
this.dragula$.add(this.dragulaService.drop('ITEMS')
.subscribe(({name, target}) => {
console.log('target', target);
})
);
Чтобы использовать события, вам нужно только создать новую Subscription
, например: this.dragula$ = new Subscription();
и .add
новую подписку.
Если вам нужна дополнительная информация, не стесняйтесь спрашивать.
РЕДАКТИРОВАТЬ ---
готовая часть кода:
import { Component } from '@angular/core';
import { DragulaService } from 'ng2-dragula';
import {Subscription} from 'rxjs/internal/Subscription';
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
dragula$: Subscription;
listas = [
{
nome: "Lista 1",
id_lista: 1,
itens: [
{ item: 'Lapis' },
{ item: 'Borracha' },
]
},
{
nome: "Lista 2",
id_lista: 2,
itens: [
{ item: 'Maca' },
{ item: 'Banana' },
]
},
{
nome: "Lista 3",
id_lista: 3,
itens: [
{ item: 'Doce' },
{ item: 'Chocolate' },
]
}
];
constructor(private dragulaService: DragulaService) {
this.dragula$ = new Subscription();
this.dragula$.add(this.dragulaService.drag('listagem')
.subscribe(({name, el, source}) => {
console.log('source', source.childNodes, source.parentElement.className);
})
);
this.dragula$.add(this.dragulaService.drop('listagem')
.subscribe(({name, target}) => {
console.log('target', target);
})
);
}
}