SortableJS: позиция меняет позицию после запроса на размещение - PullRequest
0 голосов
/ 26 сентября 2019

Я создаю веб-страницу и в качестве базы данных я использую mongodb (mongoose).У меня есть одна страница, где я перечисляю некоторые документы (идентификатор, дата, статус и т. Д.).Затем я могу нажать на элемент, чтобы увидеть более подробную информацию.На этой странице я добавил выпадающее меню, чтобы изменить некоторые значения.Когда я изменяю значение (ajax put request -> mongoose findByIdAndUpdate) и затем возвращаюсь на страницу списка, порядок моего списка изменился.Затем элемент, который я изменил, является первым элементом в списке.

Мой цикл for для создания списка:

<div id="simpleList" class="list-group">
    <% items.forEach(function(item) { %>
    <div class="box-item list-group-item">

        <div class="box-normal row-1 margin-left filtered">
            <p><%= item.itemId %></p>
        </div>

        <div class="box-normal row-1 margin-left filtered">
            <p><%= item.projectName %></p>
        </div>

        <a id="link-text" class="bold row-1 align-right" href="srequest/<%= item.itemId %>">More details</a>
        <p class="row-1 icon-drag">
            <span class="my-handle"><i class="fas fa-arrows-alt-v fa-3x" title="Move item"></i></span>
        </p>

    </div>
    <% }); %>
</div>

Код для списка SortableJS:

<script>
Sortable.create(simpleList, { 
    store: {
  filter: '.filtered', // 'filtered' class is not draggable
  handle: '.my-handle',
  animation: 0,

        /**
         * Get the order of elements. Called once during initialization.
         * @param   {Sortable}  sortable
         * @returns {Array}
         */
        get: function (sortable) {
            var order = localStorage.getItem(sortable.options.group.name);

            return order ? order.split('|') : [];
        },
        /**
         * Save the order of elements. Called onEnd (when the item is dropped).
         * @param {Sortable}  sortable
         */
        set: function (sortable) {
            var order = sortable.toArray();

            localStorage.setItem(sortable.options.group.name, order.join('|'));
        }
  }
 });

</script>

Даже если я отключу сортируемую функцию с параметром «отключить: true», элемент все равно станет первым, когда я обновлю что-либо.

Я думаю, что обновленный элемент будет рассматриваться как новый элемент и, следовательно,движется в верхней части списка.Есть ли способ сохранить порядок списка до того, как я покину эту страницу?

Заранее спасибо за помощь!

BR Christian

...