【问题标题】:How do you use global Coffeescript variables on client startup in Meteor?您如何在 Meteor 的客户端启动时使用全局 Coffeescript 变量?
【发布时间】:2014-03-02 19:01:02
【问题描述】:

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

Uncaught ReferenceError: x is not defined

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

【问题讨论】:

    标签: coffeescript meteor


    【解决方案1】:

    这与评估源文件的顺序有关。有关所有详细信息,请仔细阅读文档的 this 部分。您可以玩一些带有文件名和位置的游戏,以更改它们的加载顺序:

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

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

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

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

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

    【讨论】:

    • 非常感谢大卫回答我的大部分 SO流星问题 :) 我想知道你为什么不赞成这些问题 - 是因为它们的格式不正确还是不太可能适用于其他人?
    • 当然没问题。 :) 这是一个很好的问题......我可能应该对选票更加慷慨,因为我希望得到同样的回报。 +1
    猜你喜欢
    • 2012-04-23
    • 1970-01-01
    • 1970-01-01
    • 2014-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-27
    相关资源
    最近更新 更多