如何在Meteor的客户端启动中使用全局Coffeescript变量?

时间:2014-02-06 02:06:36

标签: coffeescript meteor

lib.coffee@x = 1。在client.coffee我有Meteor.subscribe('data', x)。页面加载时,我在控制台中收到错误:

Uncaught ReferenceError: x is not defined

但是,在页面加载完成后,我在控制台中键入x,它被识别为值为1的全局变量。

1 个答案:

答案 0 :(得分:4)

它与评估源文件的顺序有关。有关所有详细信息,请仔细阅读文档的this部分。您可以使用文件名和位置玩多种游戏,以便更改其加载顺序:

  • 更改文件名,使其按字母顺序显示
  • 将需要首先加载的文件放在子目录
  • 将需要首先加载的文件放在lib目录

但是,在这种特殊情况下,您可以通过执行以下操作来延迟订阅的激活:

Meteor.startup ->
  Meteor.subscribe 'data', x

Tracker.autorun ->
  if Meteor.userId()
    Meteor.subscribe 'data', x

在评估完所有源文件后,可以使用这些技巧执行代码。