不要对Meteor中的更新进行反应排序

时间:2013-01-22 05:32:02

标签: meteor

我有一个视觉显示的帖子列表。每个帖子按其投票排序。

Posts.find({}, {sort: {votes: -1, name: 1}})

现在,当用户点击帖子上的upvote时,我会做

Posts.update(id, {$inc: {votes: 1}});

现在,由于它按投票排序,因此项目在列表中向上/向下移动,用户将丢失上下文。他必须搜索它移动到的项目。

如何告诉meteor在更新时不移动项目?

我检查了Collections.update函数,它不支持reactive: false

1 个答案:

答案 0 :(得分:5)

你必须在find方法中使用reactive:false(它将数据传递给把手)。

Posts.find({}, {sort: {votes: -1, name: 1}, reactive: false}});

这样它就不会监听更新(插入/更新/移动/删除)

如果您需要对其进行自定义以使其仅用于更新操作:

对于初学者,您需要删除autopublish包。

您还需要手动订阅集合并从服务器发布它们。 parties example显示了如何做得很好。

然后,您需要编写自定义发布函数并更改changed:函数,以便在投票更改时不会向客户端发送任何数据。请注意,用户在刷新页面之前不会看到更新的投票数