我不明白为什么这个游标返回零计数:
Template.productList.helpers({
'products': function() {
return Products.find({}, {transform: function(doc) {
console.log(ProductsLocations.find({product_id: doc._id}).count());
return doc;
}});
}
});
当我console.log()
没有.count()
时,我会在Chrome开发工具中找到一个可以遍历的对象。
数据库中存在值,doc._id
是有效ID
答案 0 :(得分:1)
您使用自动订阅吗?
您可能需要确保订阅已准备就绪。请参阅Meteor: How can I tell when the database is ready?和Displaying loader while meteor collection loads。
您在控制台中看到对象的原因是,当您拨打该电话时,订阅已准备好。但是在您的帮助程序代码中,您可能认为订阅数据已经到达,而实际上它没有。
一个有用的调试工具是Chrome的设备模式(DevTools中搜索图标附近的“电话”图标),可让您模拟慢速网络(例如GPRS,每个请求延迟500毫秒)。
详细了解Meteor's publish/subscribe,并查看https://www.discovermeteor.com/blog/template-level-subscriptions/了解最新模式。