`Meteor.users.findOne(userId)`undefined In Client

时间:2015-11-08 19:16:41

标签: javascript mongodb meteor coffeescript meteor-helper

免责声明: 我是Meteor的新手。

我正在处理一些作为模板帮助程序运行的meteor客户端代码,并使用提供的id加载用户的用户名:

 Template.message.helpers
    editedBy: ->
        return "" unless wasEdited(@)
        if @edit.by
            user = Meteor.users.findOne(@edit.by)
            if user?
                user.username
            else
                "?"
        else
            "?"

此代码的问题是当消息模板使用non-reactive render帮助程序调用它时:

{{#each messagesHistory}}
  {{#nrr nrrargs 'message' .}}{{/nrr}}
{{/each}}

,消息模板的格式为:

<template name="message">
...
    {{editedBy}}
...
</template>

该函数返回?,因为Meteor查找返回undefined。调试并添加一些日志记录后,我可以验证@edit.by id是否是正确的用户ID,并且调用Meteor.users.findOne(thatId)加载正确的用户(当我通过chrome javascript控制台执行此操作时)。

这里发生了什么?我猜它与数据可用时有关,但我该如何解决呢?

提前致谢!

调试信息

在App Load期间

During App Load

应用程序加载后

After App Load

0 个答案:

没有答案