Динамически получить позицию для каждой позиции перетаскивания - PullRequest
0 голосов
/ 30 марта 2020

Я использую 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 из бэкэнда) и на каждом ключе позиции нужно запускать метод, чтобы получить индекс и установить его в положение ... и это сложно.

Вот ПРИМЕР , не реальный код, но для простоты, мы можем использовать этот пример, чтобы попытаться получить позицию.

Спасибо за любые помощь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...