我试图使用commonJS模式在coffeescript中扩展marionette的模块类,这样我就可以要求在我的应用程序的各个部分重用一般的Module类。到目前为止,没有运气。
到目前为止,我已经尝试过这个:
module.exports = class SingleFeed extends Marionette.Module
@addInitializer((options) =>
console.log 'initialize'
)
和此:
module.exports = Marionette.Module.extend(
@addInitializer((options) =>
console.log 'initialize'
)
)
希望我可以在我的应用程序中重用这段代码:
HomeFeed = require '../modules/components/feeds/SingleFeed'
hf = new HomeFeed()
app.module('HomeFeed',
moduleClass: hf
).start(options)
有没有人用coffeescript成功完成此操作?或者有没有人有任何可能有帮助的想法?
答案 0 :(得分:1)
问题addInitializer
是模块实例的方法,但是当你扩展时,你无法调用它。但您可以覆盖空的默认initialize
,您可以在其中添加初始值设定项和终结符:
module.exports = Marionette.Module.extend(
initialize: () ->
console.log('initialize module')
@addInitializer((options) =>
console.log 'starting module'
)
)