2012-06-07 46 views
3

在1个文件中定义的类似乎在其他文件中不可用。我试图宣布他们像在另一个文件中使用CoffeeScript中定义的类

class exports.Todo extends Backbone.Model ... 
... 
exports = exports ? this 

但它出现在编译的JS,出口是在封闭从而反正其他文件无法定义。

// Generated by CoffeeScript 1.3.3 
(function() { 
    var exports, ... 

什么是正确的方法来做到这一点?我可以使用class window.Todo ...这似乎工作...但不是真的在我的JS测试驱动程序...

+0

[从Coffeescript文件导出类]的可能重复(http://stackoverflow.com/questions/7533191/export-a-class-from-a-coffeescript-file) –

回答

3

你有两个选择;你可以使用“join”选项编译coffeescript,在编译之前连接你所有的咖啡文件,或者你可以使用与你正在做的相似的导出。但它看起来像 - 由于命名不佳 - 编译器提升/取消导出变量,假设它是本地的,这是错误的。请参阅Export a class from a Coffeescript file,了解如何正确执行此操作。

请记住,导出的真正目标取决于您是打算在浏览器中运行程序还是在其他环境(如node.js)下运行程序。上面链接的答案展示了一种更好的方式,您只需调用您的“全局环境”根目录,并使用代码将其设置为环境认为正确的任何内容(在node.js中输出,这意味着在浏览器中显示窗口)。

相关问题