4

在 1 个文件中定义的类似乎在其他文件中不可用。我试着宣布他们喜欢

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

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

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

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

4

1 回答 1

3

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

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

于 2012-06-07T10:28:54.977 回答