在另一个文件中使用CoffeeScript中定义的类

时间:2012-06-07 07:13:48

标签: coffeescript

在1个文件中定义的类似乎在其他文件中不可用。我尝试将它们声明为

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

但它出现在已编译的JS中,导出在闭包中定义,因此无论如何在其他文件中都不可用。

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

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

1 个答案:

答案 0 :(得分:3)

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

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