Я использую ngx Сортируемый для перетаскивания. Есть ли способ получить положение каждого объекта в массиве, когда я перемещаю какой-либо элемент и обновляю его с новой позицией?
Вот мое объяснение: - У меня есть массив объектов, и у каждого объекта есть массив объектов и др c.
{
"id": 175,
"name": "dag",
"title": "dfgd",
"page": [{
"id": 551,
"name": "page1",
"title": "Page 1",
"position": 0,
"questions": [{
"id": 70,
"name": "text1",
"text": "Questitexton 1",
"position": 0,
"data": [{
"id": 56,
"name": "data",
"position": 0,
"text": "Control 3"
}]
}, {
"id": 69,
"name": "data3",
"text": "data 3",
"position": 1,
"data": [{
"id": 55,
"name": "data2",
"position": 0,
"text": "Control 3"
}]
}]
}, {
"id": 552,
"name": "page2",
"title": "Page 2",
"position": 1,
"questions": [{
"id": 73,
"name": "text1",
"text": "Questitexton 1",
"position": 0,
"data": [{
"id": 75,
"name": "data",
"position": 0,
"text": "Control 3"
}]
}, {
"id": 45,
"name": "data3",
"text": "data 3",
"position": 1,
"data": [{
"id": 798,
"name": "data2",
"position": 0,
"text": "Control 3"
}]
}]
}]
}
Взгляните на клавишу position ... когда я перетаскиваю какой-либо элемент в другую позицию, мне нужно обновить все позиции на странице, скажем, если у нас есть что-то вот так
position 0 1 2 3
let array = [{object}, {object2}, {object3}, {object4}]
и я двигаюсь object4 до object2 Мне нужно обновить все позиции, поскольку позиция object0 такая же, тогда для object4 мне нужно изменить положение на 1, object2 нужно изменить положение на 2 et c ....
Если вы посмотрите на мой JSON, у меня есть вложенные объекты (дочерние), и я могу переместить каждый объект с позиционным ключом в любую позицию, от детей до детей, от детей до родителей, от родителей до детей и т. Д. c ...
I попробовал, и я думаю, что лучший способ, когда перетаскивание закончено, загрузить JSON и использовать indexOf () для каждого объекта. Но у меня есть проблема, потому что мне нужно каждый раз заходить на каждый уровень JSON (я получаю динамически JSON из бэкэнда) и на каждом ключе позиции нужно запускать метод, чтобы получить индекс и установить его в положение ... и это сложно.
Вот ПРИМЕР , не реальный код, но для простоты, мы можем использовать этот пример, чтобы попытаться получить позицию.
Спасибо за любые помощь