免责声明: 我是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控制台执行此操作时)。
这里发生了什么?我猜它与数据可用时有关,但我该如何解决呢?
提前致谢!