我想用拖放来做一个待办事项列表,例如https://github.com/meteor/meteor/tree/master/examples/unfinished/reorderable-list。
问题是我不知道如何正确处理排名。我尝试了上面的示例,它可以正常工作,直到构建的等级不再改变
因此,我认为每次插入新任务或更改一项任务的排名时,最好重新排序我的待办事项列表。
首先在客户端尝试:
var dropRank=1 Tasks.find({rank:{$gt:dropRank-1}},{fields:{_id:1}}).forEach( 功能(任务){ Tasks.update(task._id,{$inc:{rank:1}}) }) Tasks.insert({rank:dropRank})
在大约 150 个任务之后,在 rank 1 处插入新任务并重新排序会变得很慢。
第二次尝试服务器(使用 Meteor.method 或 collection.hook):
Tasks.update({rank:{$gt:dropRank-1}},{$inc:{rank:1}},{multi:true})
在约 150 个任务之后,我看到客户端上的排名缓慢更新。
如果我尝试使用本地集合,它会在 400 个任务后变慢。
所以问题是:有没有合适的方法来建立一个等级,这样我就可以插入一个任务并显示它而不更新其他等级?