关于Coffeescript的全球流星收集

Lou*_*uis 4 coffeescript meteor

如果我声明一个全局集合如下:

@Matches = new Meteor.Collection "Matches"
Run Code Online (Sandbox Code Playgroud)

如何在Meteor的服务器端和客户端的闭包中找到一致的方法来访问它?

例如,以下内容不起作用,因为@引用this(它不是闭包中的顶级命名空间)

Meteor.publish("current-matches", ->
  return @Matches.find(round: 0)  # @Matches doesn't work since `this` is something else
)
Run Code Online (Sandbox Code Playgroud)

Dav*_*don 6

将您的集合定义放在共享目录中,以便客户端和服务器都可以看到它们.然后你可以使用它们@.例如:

收藏/ matches.coffee

@Matches = new Meteor.Collection 'matches'
Run Code Online (Sandbox Code Playgroud)

服务器/ server.coffee

Meteor.publish 'current-matches', ->
  Matches.find round: 0
Run Code Online (Sandbox Code Playgroud)