MeteorJS和Coffeescript

Vla*_*lav 9 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"列表"

谢谢

And*_*cox 12

请参阅http://docs.meteor.com/#coffeescript,了解如何使用@Meteor环境中的CoffeeScript定义全局变量的便捷方法.正如@Akshat在评论中提到的那样,Meteor this在全球环境中处于顶层水平,以实现这一目标.


Aks*_*hat 1

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

来自流星文档

可以使用 this (或 CoffeeScript 的 @ 简写)在 CoffeeScript 中设置全局变量,因为在顶层 this 指的是全局命名空间(客户端上的 window 和服务器上的 global)。因此

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

因此,全球化你的清单:

@Lists = new Meteor.Collection "lists";
Run Code Online (Sandbox Code Playgroud)

这样里面的内容model.js就可以被其他文件访问(它变成全局的)