coffeescript中的名称空间
|
我想像使用JavaScript那样使用关键字\“ with \”来使用名称空间,但是CoffeeScript将其报告为保留关键字,并拒绝编译,有什么办法可以在CS中使用名称空间吗?
特别是,我想动态地包含CoffeeScript文件(受信任的源),就像为数据库架构加载模型一样,但是我希望所包含的脚本能够访问本地名称空间。
编辑:
这是我想做的。我正在建立一个将目录树映射到基于express和mongoose的应用程序的Web框架。例如,有一个子目录\“ models \”,其中包含文件\'user.coffee \',其中的代码如下:
name:
type: String
unique: on
profiles: [ Profile ]
因此,“ 1”是一个位于名为“ 2”的本地对象中的类。加载用户模型时,我希望它访问本地模型存储区中的模型类。
我现在的解决方法是在文件'user.coffee \'中写入ѭ3。希望我的意思很清楚。
第二次编辑
这是我不使用with
的方法:
用户咖啡
name:
type: String
unique: on
profiles: [ @profile ]
profile.coffee
content: String
这是动态加载的方式:
for fm in fs.readdirSync \"#{base}/models\"
m = path.basename fm, \'.coffee\'
schema[m] = (()->
new Schema coffee.eval (
fs.readFileSync \"#{base}/models/#{fm}\", \'utf8\'
), bare: on
).call model
mongoose.model m, schema[m]
model[m] = mongoose.model m
对我来说似乎是一个好的解决方案。
没有找到相关结果
已邀请:
4 个回复
公藕
语法;参见https://github.com/satyr/coco/wiki/additions。但是,该语法只是将“ 9”的值设置为块中的目标对象,而不是编译为有问题且已弃用的“ 4”关键字。 假设您想在CoffeeScript中模拟Coco的
语法。您将执行以下操作:
那你可以写
当然,在这种简单情况下,最好使用jQuery或Underscore的
之类的实用函数:
脾萌
\“编译\”为:
很遗憾,这是道格·克罗克福德的观点被当作福音的另一个领域。
被认为有害的语句基于属性写的歧义拒绝它,但是当它与只读上下文对象(例如定义DSL类API的上下文对象)一起使用时,会忽略其有用性。
碉罕城爸
您还应该注意,不建议使用
关键字,它是ES5严格模式下的语法错误。主流JS黑客之间的共识是,“ 4”不是一个好主意。 如果您举了一个您想做的事的例子,我可以给出一个更具体的答案。
粳饶瓢部