Meteor订阅不会更新收集的sorting顺序
// Snippet from Template <div class="post-container"> {{#each elements}} {{> post-element this}} {{/each}} </div> // Snippet from Client Meteor.subscribe('thePosts'); // Snippet from Server Meteor.publish('thePosts', function(){ return Posts.find({}, {sort:{createdAt:-1}, reactive:true}); });
当我做…
Posts.insert({body:postBody, createdAt: new Date()});
后文档被添加并出现在我的列表的末尾,而不是我的发布函数中指定的降序。 任何想法我做错了什么?
谢谢!
发布function确定哪些logging应该同步到任何订阅客户端的迷你mongo数据库。 因此,对发布函数中的数据进行sorting实际上对客户端没有任何影响,因为客户端数据库可能以其他方式存储它们。
当然,您可能想要在发布者的find
中使用sorting,以便将logging数量限制为最近的N个logging – 但是,这也只是决定将哪些logging同步而不是如何存储/使用的方式客户端。
一旦logging已经同步到客户端,取决于模板代码来确定如何显示结果。 例如:
Template.myTemplate.elements = function() { return Posts.find({}, {sort: {createdAt:-1}}); }
另请参阅常见错误的post“sorting发布”部分。
你没有发布你的模板帮手代码。
当你从辅助函数return Posts.find()
,查询也应该包含sorting参数,如下所示:
Template.myTemplate.elements = function(){ Meteor.subscribe('thePosts'); return Posts.find({}, {sort:{createdAt:-1}, reactive:true}); }