MeteorJS和Coffeescript

时间:2013-04-19 09:58:45

标签: javascript coffeescript meteor

我有/clients/client.js,/server/server.js和/model.js

在model.js中我有:“Lists = new Meteor.Collection(”lists“); 在客户端/服务器中,我使用过这个集合。一切正常。

添加coffeescript后。我已将所有js(3)文件转换为.coffee。删除js文件 并启动流星。但现在我有了:

未捕获的ReferenceError:未定义列表

为什么呢?错误在哪里?

列表=新的Meteor.Collection“列出”

由于

2 个答案:

答案 0 :(得分:12)

有关如何使用@作为从Meteor环境中的CoffeeScript定义全局变量的便捷方式,请参阅http://docs.meteor.com/#coffeescript。正如@Akshat在评论中提到的那样,Meteor将this设置在全球环境的顶层,以简化这一过程。

答案 1 :(得分:1)

使用coffeescript,如果要在另一个文件中访问变量/函数,则需要公开变量

来自流星文档

  

可以使用此(或Cof​​feeScript的@速记)在CoffeeScript中设置全局变量,因为在顶层,它指的是全局命名空间(客户端上的窗口和服务器上的全局窗口)。因此

     

@myFunction = - > 123   在顶层设置全局变量myFunction。

让您的列表全球化:

@Lists = new Meteor.Collection "lists";

这样你的其他文件就可以访问model.js内部(它变成全局的)