【问题标题】:Whenever I refresh the page in meteor angular then `Meteor.user()` method returns undefined每当我以流星角度刷新页面时,`Meteor.user()` 方法返回未定义
【发布时间】:2018-02-23 02:04:58
【问题描述】:

我在 Meteor Angular 项目中使用 accounts-password@1.4.0 包。

Meteor.user() 方法返回当前用户详细信息,但是当我刷新页面时它返回undefined。 那么有什么办法可以消除这个错误呢?任何帮助将不胜感激。

Meteor.autorun(function () {
  vm.loggedInUser = Meteor.user();
});

它工作正常,但是当我重新加载页面时它返回undefined

Meteor.autorun(function () {
  vm.loggedInUser = Meteor.user();
  console.log("loggedInUser", vm.loggedInUser); // undefined
});

【问题讨论】:

  • 你的问题太宽泛了。您应该添加更多信息和/或代码,以便我们能够理解您的问题。
  • 我用更多信息改进了我的问题。它可以帮助你
  • 你的意思是Tracker.autorun,对吧?
  • 我正在使用流星+角度

标签: javascript angular meteor angular-meteor


【解决方案1】:

当您刷新页面时,Meteor.user() 将在几个周期内未定义,直到其数据通过 websocket/ddp 从服务器重新传输到客户端。它最终会被定义并拥有正确的数据。像 Meteor 中内置的单页应用程序通常不需要页面刷新,但必须处理用户手动刷新的情况。一个典型的解决方案是在订阅和用户数据准备好之前显示一个加载微调器。

也是Tracker.autorun() 不是Meteor.autorun()

【讨论】:

  • 从一个路由切换到另一个路由时从服务器获取数据。
  • 你如何切换路线?您是否单击了应用程序中的链接?或者在浏览器中输入一个新的网址?在前一种情况下,Meteor.user() 应该保持可用,而在第二种情况下,它与进行真正的页面刷新相同。
猜你喜欢
  • 2017-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-24
  • 1970-01-01
相关资源
最近更新 更多