我有/clients/client.js,/server/server.js和/model.js
在model.js中我有:“Lists = new Meteor.Collection(”lists“); 在客户端/服务器中,我使用过这个集合。一切正常。
添加coffeescript后。我已将所有js(3)文件转换为.coffee。删除js文件 并启动流星。但现在我有了:
未捕获的ReferenceError:未定义列表
为什么呢?错误在哪里?
列表=新的Meteor.Collection“列出”
由于
答案 0 :(得分:12)
有关如何使用@
作为从Meteor环境中的CoffeeScript定义全局变量的便捷方式,请参阅http://docs.meteor.com/#coffeescript。正如@Akshat在评论中提到的那样,Meteor将this
设置在全球环境的顶层,以简化这一过程。
答案 1 :(得分:1)
使用coffeescript,如果要在另一个文件中访问变量/函数,则需要公开变量
来自流星文档
可以使用此(或CoffeeScript的@速记)在CoffeeScript中设置全局变量,因为在顶层,它指的是全局命名空间(客户端上的窗口和服务器上的全局窗口)。因此
@myFunction = - > 123 在顶层设置全局变量myFunction。
让您的列表全球化:
@Lists = new Meteor.Collection "lists";
这样你的其他文件就可以访问model.js
内部(它变成全局的)