关于Coffeescript的全球流星收集

时间:2013-06-04 20:39:14

标签: coffeescript meteor

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

@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
)

1 个答案:

答案 0 :(得分:6)

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

<强>集合/ matches.coffee

@Matches = new Meteor.Collection 'matches'

服务器/ server.coffee

Meteor.publish 'current-matches', ->
  Matches.find round: 0