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



每次刷新页面时,我都会收到以下控制台警告,警告每个从集合向模板返回内容的助手。我知道原因是订阅还没有准备好,但解决方案是什么?

模板帮助程序中出现异常:TypeError:无法读取未定义的属性"x">

我已经在使用if(collection.find({}) !== undefined)了,但这让我的代码非常混乱,必须有办法解决这个问题。然后我尝试了警卫,但仍然没有100%解决。

除了Brendan的答案外,使用Blaze还可以使用检查模板的订阅是否准备好

this.subscriptionsReady()

它使用检查模板范围内的所有订阅

this.subscribe()

在您的onCreatedonRendered块中

Meteor.subscribe返回一个句柄,该句柄带有一个名为.ready()的反应方法。您可以在助手中使用它,只在mongo游标准备好后返回它。

编辑:文档

最新更新