我有一个属于用户的文件夹列表,我希望他们能够通过拖放来重新排序。我可以让拖放正常工作,但我不知道如何保存结果。我正在使用 Parse,我认为这意味着我必须检索每个对象,更改 order 属性,然后重新保存它......但这似乎不起作用,因为它们都以相同的顺序出现。
在排序然后执行 .sortable('toArray') 之后,我有一个文件夹 id 数组,前面带有单词 'folder',所以它看起来像 ["folder_ab9gu3nd"、"folder_kwkgiutyqo"、"folder_s856skt8w"]。
所以,我想用命令 0 保存文件夹 ab9gu3nd,用命令 1 保存 kwkgiutyqo,用命令 2 保存 s856skt8w。
这是我的代码(“结果”是具有文件夹 ID 的数组):
for(var ii=0; ii<result.length; ii++) {
// Get actual id
var folderId = result[ii].replace('folder_', '');
var folderOrder = ii;
var folder = Parse.Object.extend("Folder");
var query = new Parse.Query(folder);
query.get(folderId, {
success: function(folder) {
// The object was retrieved successfully.
folder.set('order', folderOrder);
folder.save();
}
});
}
当我运行它时,所有文件夹都以“2”的顺序结束,就好像 ii 的最终值用于所有文件夹一样。我该如何阻止这种情况发生?