如果我声明如下全局集合:
@Matches = new Meteor.Collection "Matches"
如何在Meteor的服务器端和客户端的闭包中找到一致的方法来访问它?
例如,下面不起作用,因为@
引用this
(它不是闭包中的顶级命名空间)
Meteor.publish("current-matches", ->
return @Matches.find(round: 0) # @Matches doesn't work since `this` is something else
)
答案 0 :(得分:6)
将您的集合定义放在共享目录中,以便客户端和服务器都可以看到它们。然后,您可以在没有@
的情况下使用它们。例如:
<强>集合/ matches.coffee 强>
@Matches = new Meteor.Collection 'matches'
服务器/ server.coffee 强>
Meteor.publish 'current-matches', ->
Matches.find round: 0