1

在我的用户集合中,我有一个名为synonym_ids.

在客户端上显示此内容的最简单方法是什么?

我尝试从服务器发布以下内容,然后从客户端订阅。但是我收到此错误:

Internal exception while starting subscription 0ea473b6-8be4-43ec-8a56-988409a4b58a Error: Meteor.userId can only be invoked in method calls. Use this.userId in publish functions.

#server
Meteor.publish 'synonym_ids', () ->
    if Meteor.userId()
        return Meteor.users.findOne({_id: Meteor.userId()}).synonym_ids


#client
Meteor.autosubscribe () ->
    Meteor.subscribe 'synonym_ids'
4

1 回答 1

1

发布函数不能使用 Meteor.userId(),但可以使用this.userId

#server
Meteor.publish 'synonym_ids', () ->
if this.userId()
    return Meteor.users.findOne({_id: this.userId()}).synonym_ids

在您的模板助手中,请务必检查用户是否已登录:

#client
Template.home.synonym_ids = ->
   Meteor.user().synonym_ids  if Meteor.userId
于 2013-03-13T08:16:50.660 回答