我知道,在编写依赖于加载到客户端 minimongo 中的集合的代码时,您应该显式订阅该集合,并在加载完成时传入适当的回调。
我的问题是我在用户集合中存储了我的页面需要访问的许多重要子文档。我正在使用 Meteor 帐户,并且正在尝试找出类似的方法来等待整个登录的用户文档可用。使用它进行测试时:
console.log(Meteor.user());
在登录的情况下,它似乎首先仅使用 _id 注册一个对象,然后稍后发送其他字段(我知道我必须显式添加其他字段以从电子邮件等服务器发布)。
有没有办法让我在执行代码之前等待登录的用户文档完全加载?
谢谢!
最佳答案
Deps.autorun (以前的 Meteor.autorun)在 react 性变化时重新运行,这可能适合您的用例:
客户端js
Deps.autorun(function () {
if(Meteor.user() {
//Collection available
}
});
如果您使用 subscription您还可以使用它的回调。请在 docs 上阅读相关内容。因为您可能需要对其进行一些自定义,并删除自动发布包以及将其他集合设置为订阅
服务器js:
Meteor.publish("userdata", function () {
//You might want to alter this depending on what you want to send down
return Meteor.users.find({}, {}});
});
客户端js
Meteor.subscribe("userdata", function() {
//Collection available
});
关于meteor - 如何知道用户文档何时加载到 Meteor Accounts 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15397136/