Я создаю приложение, в котором у меня есть N столбцов (N списков элементов), и с помощью перетаскивания из углового материала я могу перемещать элементы между ними. Я также использую в своем приложении NGRX и EntityAdapter.
Я хотел бы спросить, как я могу правильно обновить порядок элементов при перемещении объекта?
Пример: перемещение первого элемента из столбца «Задачи». этот предмет следует положить между почистить зубы и собрать продукты.
Сейчас я знаю, как обновить столбец каждого элемента моего списка. Единственное, чего я не знаю, так это как поставить его в правильном порядке (сортировка по умолчанию, поэтому, вероятно, по идентификатору)
Интерфейс элемента:
export interface Item{
id:string;
title:string;
columnId:string;
}
диспетчерское действие для обновления columnId:
drop(event: CdkDragDrop<string[]>) {
const droppedItem: SavedJob = event.item.data;
const previousColumn = event.previousContainer.id;
const currentColumn = event.container.id;
this.store.dispatch(
updateColumn({
updates: {
id: droppedItem.id,
changes: {
columnId: currentColumn
}
}
})
);
редуктор:
on(SavedJobsActions.updateColumn,(state,action)=>{
return savedJobsAdapter.updateOne(action.updates,{
...state,
entities:{
...state.entities,
[action.updates.id]:{
...state.entities[action.updates.id]
}
}
}
)
})
Как мне правильно обновить как columnId
, так и порядок каждого элемента? Я знаю, что должен добавить ключ порядка для каждого элемента, но тогда может быть сложно обновить значение порядка для каждого столбца.
sortComparer
. Возможно, это имело бы для вас какую-то ценность. - person R. Richards   schedule 07.10.2020