我正在建立一个网页和作为数据库我使用mongodb( Mongoose )。我有一页,我列出了一些文件(ID、日期、状态等)。然后我可以单击该项目以查看更多详细信息。在该页面上,我添加了一个下拉菜单来更改一些值。当我更改值时(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>
即使我用选项"disable:true "当我更新某些内容时,该项目仍将成为第一个。
我想更新后的条目会被当作新条目处理,因此会移到列表的顶部。有没有办法在我离开那个页面之前存储列表的顺序?
提前感谢您的帮助!
BR克里斯蒂安
1条答案
按热度按时间stszievb1#
你需要一个组名和存储的功能只需要获取和设置参数。这将正常工作。