1

模板请求...

if (this.userRequesting._id === Meteor.user()._id) { ... }

...检查一个人的身份。(我怀疑这不是处理这个问题的最佳方法,但我会将它保存到另一个问题,以免使这个问题超载)。

我的问题是,这会导致巨大的错误级联表明Meteor.user()未定义,在页面加载时...一旦加载页面,此代码将毫无问题地执行。显然,有一个时间漏洞(或者我相信)Meteor.user()在页面加载的瞬间仍未分配。将上面的代码替换为...

    ____________
if (Meteor.user() && this.userRequesting._id == Meteor.user()._id) { ... }

...解决了问题,但是...来吧...这不可能是犹太教。我错误地对模板和 Meteor 做了什么假设?

如果相关,我将accounts-password用作我的作弊客户经理。


[编辑]:这看起来像同样的问题,但我在寻找修复而不是解决方法的前提下留下这个问题。(我已经知道检查可以Meteor.user()解决这个问题。)

4

2 回答 2

1

是的,你基本上做对了。当您第一次刷新页面时,用户不会被认为已登录,它必须验证它是否已登录。但是模板的东西会立即被调用,然后在加载其他东西时再次调用(如果你把alert一个rendered方法放进去,你会注意到这一点)。最好的解决方案正是您所建议的,尽管您可以使用它Meteor.userId()来获取 id:

if (Meteor.userId() && Meteor.userId() === this.userRequesting._id) {
    // ...
于 2013-08-28T09:23:08.430 回答
0

您可以使用Meteor.userId()来获取已_id登录用户的属性,或者null(我认为)如果用户未登录。

于 2013-08-28T07:17:33.030 回答