jbm*_*sso 17 coffeescript meteor
自Meteor 0.6.0发布以及添加文件级JavaScript变量范围以来,我遇到了使用CoffeeScript类的问题,每个类都在各自的文件中定义.
foo.coffee:
class Foo
...
Run Code Online (Sandbox Code Playgroud)
subfoo.coffee:
class Subfoo extends Foo
...
Run Code Online (Sandbox Code Playgroud)
正如预期的那样,并且由于Meteor 0.6.0中引入的更改,我收到以下错误:
ReferenceError:未定义Foo
这是我的问题:如何使用CoffeeScript和Meteor> 0.6.0处理文件中的类定义?理想情况:是否有一种方便的方法是不要过多地修改类的定义方式,以确保这些定义(以及我的应用程序的核心部分)不依赖于Meteor?
Dav*_*don 25
正如文档的CoffeeScript部分所述:
可以使用这个(或CoffeeScript的@速记)在CoffeeScript中设置全局变量
事实证明,CoffeeScript类可以定义为:
class @Foo
Run Code Online (Sandbox Code Playgroud)
编译为:
this.Foo = (function() {
function Foo() {}
return Foo;
})();
Run Code Online (Sandbox Code Playgroud)
假设foo.coffee在subfoo.coffee您可以执行之前加载:
class @Subfoo extends Foo
Run Code Online (Sandbox Code Playgroud)
当然,假设Subfoo需要将其分配给全球范围.还值得一提的是,您需要以类似的方式公开您的馆藏.例如:
@Players = new Meteor.Collection 'players'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3878 次 |
| 最近记录: |