流星订阅/发布+帮助最佳实践

时间:2014-05-08 18:57:41

标签: meteor meteorite

我有一个应用程序,我想在其中一个集合中显示我所拥有的元素的计数器。 为此,我使用了我在HTML文件{{nbPosts}}

中调用的帮助程序
UI.registerHelper('nbPosts', function () {
return Posts.find().count();
});

但要显示它,我需要订阅整个Posts集合。 对我来说似乎没有任何建议,如果不发送整个集合,可以更好地做到这一点吗?

谢谢,

2 个答案:

答案 0 :(得分:1)

这取决于您是否需要这种方式来自动更新数据(我认为这不是最好的主意)。如果反应性不重要,您可以使用服务器方法,所以

Meteor.methods({
  'nbPosts': function () {
    return Posts.find().count();
  },
});

如果您需要反应性,可以实施自定义publish方法,就像在this示例中一样。请记住,这在服务器使用方面要贵得多,因此效率低得多。

答案 1 :(得分:0)

最简单的方法是拥有一个只跟踪帖子数量的集合,并在插入或删除帖子时更新它。