假设我有一个名为GameStatus
. 我有不同角色的用户,但我为所有用户发布了 GameStatus 集合。我只是在 server/publications.coffee 中使用以下内容
Meteor.publish 'gamestatus', ->
GameStatus.find()
对于两个角色(“S”和“B”),当我使用以下模板帮助程序(在文件client/views/seller.coffee和client/views/buyer.coffee中定义)时我没有问题
currentRound: ->
return GameStatus.findOne().currentRound
对于这些,我永远不会收到以下错误。
Uncaught TypeError: Cannot read property 'currentRound' of undefined
但是对于另一个角色('admin'),使用相同的模板助手(在文件client/views/admin.coffee中定义)给出了上面的显示未捕获的类型错误。如果我改写它,它会起作用:
currentRound: ->
return GameStatus.findOne()?.currentRound
我有点理解为什么会这样。我认为,在加载页面时,该集合首先不可用,然后才可用。但是为什么上面显示的其他模板不会发生这种情况呢?
如果有人可以帮助澄清这一点,我将不胜感激。