1

在我们的应用程序中重现的步骤:

  1. 登出。
  2. 清除缓存。
  3. 重新加载页面。
  4. 登录。实际:您留在首页。预期:应用程序打开。

如果用户登录(特别是 ),我们的主模板会显示应用程序{{#if currentUser}}。否则,它会显示一个启动页面,用户可以在其中创建帐户并登录。

我们正在使用{{loginButtons}}助手。

这会是一个用例Meteor.flush()吗?如何在用户登录时触发它?Meteor.autorun()?

4

2 回答 2

1

难道逻辑实际上不在您定义的模板中,而是在 index.html 本身中?如果它没有被分解成某种首页逻辑模板,您可以从中调用其他模板,我可以看到这可能会导致问题。只是一个想法。

于 2013-02-11T21:20:28.177 回答
1

有几件事导致了这里的解决方案。

  1. 我重组了我的首页模板以考虑{{loggingIn}}到这一点。之前,我只使用{{currentUser}}.

  2. 我确保我没有Session在模板助手中设置变量,尤其是那些我也在其他代码路径中获取它们的变量。这就解释了为什么这个问题感觉像是一个竞争条件,并且正如我所说的那样只发生在“冷缓存”中。

此外,视图没有改变的原因是因为错误阻止它这样做。所以这是一个症状,而不是实际问题(尽管我确实需要稍微改进模板条件)。

于 2013-02-27T12:17:04.620 回答