meteor - 如何知道用户文档何时加载到 Meteor Accounts 中

标签 meteor

我知道,在编写依赖于加载到客户端 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/

相关文章:

javascript - meteor js创建mongodb数据库钩子(Hook)以固定间隔存储来自API的数据

javascript - 如何在 Meteor 中实现实时搜索,而不会在每个字母后输入模糊的文本?

meteor - 使用 Iron Router, "Router is not defined"

meteor - 订阅同一出版物的多个模板的模板级订阅是运行一次还是每个模板运行一次?

javascript - Meteor 选择器无法处理意外的字符串错误

docker - 如何修复以代码 6 退出的 docker 容器?

meteor - accounts-github 包导致我的 meteor 用户有一个空的电子邮件

javascript - 您将如何计算数组中数组中对象的实例

javascript - 如何在 Meteor 中呈现带有预定义数据的静态页面

javascript - 使用meteor在body中添加按钮并从JS函数中获取值