9

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

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

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

未捕获的 ReferenceError:未定义列表

为什么?错在哪里?

列表 = 新 Meteor.Collection “列表”

谢谢

4

2 回答 2

12

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

于 2013-04-20T17:04:23.163 回答
1

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

来自流星文档

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

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

所以全球化你的列表:

@Lists = new Meteor.Collection "lists";

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

于 2013-04-19T14:45:08.600 回答