2

我有一个直观显示的帖子列表。每个帖子都按其投票排序。

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

现在,当用户点击帖子上的投票时,我会做一个

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

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

如何告诉流星不要在更新时移动项目?

我检查了 Collections.update 功能,它不支持reactive: false

4

1 回答 1

5

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

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

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

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

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

然后,您还需要手动订阅您的集合并从服务器发布它们。当事人的例子展示了如何很好地做到这一点。

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

于 2013-01-22T07:39:58.817 回答