【发布时间】:2014-05-14 14:40:53
【问题描述】:
我想用拖放操作做一个待办事项列表,比如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 个任务后变慢。
所以问题是:有没有合适的方法来建立一个等级,这样我就可以插入一个任务并显示它而不更新其他等级?
【问题讨论】:
标签: sorting drag-and-drop meteor meteor-blaze