当流星收集尚未准备好时,避免控制台警告的正确方法是什么

时间:2017-11-01 20:36:43

标签: meteor meteor-blaze meteor-collections

每次刷新页面时,我都会收到以下控制台警告:每个帮助器都会从集合中返回一些模板。我知道原因是因为订阅尚未准备好,但解决方案是什么?

模板助手中的异常:TypeError:无法读取未定义的属性“x”。

我已经在使用if(collection.find({}) !== undefined),但这会让我的代码变得如此混乱,必须有办法解决这个问题。然后我尝试了guards,但仍未100%解决。

2 个答案:

答案 0 :(得分:2)

除了Brendan的回答,使用Blaze,您可以使用

检查模板的订阅是否准备就绪
[['FirstName','Amr'], ['SecondName','Adel']]

使用

检查作用于模板的所有订阅
this.subscriptionsReady()

在您的this.subscribe() onCreated

答案 1 :(得分:1)

Meteor.subscribe返回一个名为.ready()的被动方法的句柄。你可以在你的助手中使用它只在它准备好后才返回mongo游标。

修改:docs