最后编辑:尝试Tracker.afterFlush
在订阅就绪回调。流星:等待客户端排序收集
编辑:排序不是问题,它是与新的会话变量相同的集合的新订阅。由于Meteor在触发subscribe-onReady回调之前未触发旧文档,因此发生问题...
我有一个流星帮助器,它返回一个排序后的集合(映射文档)。 它看起来像这样:
"currentNames": function() {
if (Session.get("sortBy") === "rating") {
return MyCollection.find({'name': {$exists: true}}, {sort: {rating: -1}}).map(function (document, index) {
document.index = index;
return document;
});
}
else if (Session.get("sortBy") === "alphabet") {
return MyCollection.find({'name': {$exists: true}}, {sort: {name: 1}}).map(function (document, index) {
document.index = index;
return document;
});
}
}
排序工作的美丽。我有一个模板使用这个帮助器在{{#each currentNames}}
-loop也可以。但是,当我通过更改会话字段sortBy
更改排序类型时,我显示的结果(html-dom-elems)完全旋转(改变它们的位置),直到它们找到最终排序。我正在谈论我正在排序的集合中的100个文档。
因为我不想让我的用户看到这个排序过程,我想等到排序完成。但我无法想出一种方法来等待排序完成。我知道何时隐藏结果(这是在会话变量sortBy
发生变化时),但是当排序完成时,我没有回调或其他东西。但我需要这个。
谢谢你的时间!希望您能够帮助我。
我不认为这真的回答了我的问题,因为订阅就绪回调是在排序之前触发的。 – ant45de