每次我刷新页面时,我都会收到以下控制台警告,每个帮助者从集合中返回一些东西到模板。我知道原因是订阅还没有准备好,但是有什么解决办法呢?
模板助手中的异常:TypeError:无法读取未定义的属性“x”。
我已经在使用了if(collection.find({}) !== undefined)
,但是这让我的代码很乱,必须有办法解决这个问题。然后我尝试了警卫,但仍然没有 100% 解决。
每次我刷新页面时,我都会收到以下控制台警告,每个帮助者从集合中返回一些东西到模板。我知道原因是订阅还没有准备好,但是有什么解决办法呢?
模板助手中的异常:TypeError:无法读取未定义的属性“x”。
我已经在使用了if(collection.find({}) !== undefined)
,但是这让我的代码很乱,必须有办法解决这个问题。然后我尝试了警卫,但仍然没有 100% 解决。
除了 Brendan 的回答,您可以使用 Blaze 检查模板的订阅是否已准备好使用
this.subscriptionsReady()
它检查模板范围内的所有订阅
this.subscribe()
在你的onCreated
或onRendered
块中
Meteor.subscribe
返回一个带有名为 的响应式方法的句柄.ready()
。您可以在您的助手中使用它来仅在准备好后返回 mongo 光标。
编辑:文档