是否可以只向用户发布集合的计数?我想在主页上显示总计数,但不将所有数据传递给用户。这是我尝试过的,但它不起作用:
Meteor.publish('task-count', function () {
return Tasks.find().count();
});
this.route('home', {
path: '/',
waitOn: function () {
return Meteor.subscribe('task-count');
}
});
当我尝试这个时,我得到了无尽的加载动画。
Meteor.publish
函数应该返回游标,但在这里您直接返回Number
这是您的文档总数Tasks
收藏。
如果您想以正确的方式执行此操作,那么在 Meteor 中计算文档数量是一项比看起来更困难的任务:使用既优雅又有效的解决方案。
套餐ros:发布计数 https://atmospherejs.com/ros/publish-counts(一个叉子tmeaday:发布计数 https://atmospherejs.com/tmeasday/publish-counts) 使用fastCount
option.
你可以这样使用它:
// server-side publish (small collection)
Meteor.publish("tasks-count",function(){
Counts.publish(this,"tasks-count",Tasks.find());
});
// server-side publish (large collection)
Meteor.publish("tasks-count",function(){
Counts.publish(this,"tasks-count",Tasks.find(), {fastCount: true});
});
// client-side use
Template.myTemplate.helpers({
tasksCount:function(){
return Counts.get("tasks-count");
}
});
您将获得客户端反应计数以及服务器端相当高性能的实现。
这个问题在(付费)防弹流星课程中讨论过,推荐阅读:https://bulletproofmeteor.com/ https://bulletproofmeteor.com/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)