使用CoffeeScript,CommonJS扩展Backbone.Marionette模块

时间:2014-04-07 17:25:54

标签: javascript backbone.js coffeescript marionette commonjs

我试图使用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成功完成此操作?或者有没有人有任何可能有帮助的想法?

以下是我引用的文档:https://github.com/marionettejs/backbone.marionette/blob/master/docs/marionette.application.module.md

1 个答案:

答案 0 :(得分:1)

问题addInitializer是模块实例的方法,但是当你扩展时,你无法调用它。但您可以覆盖空的默认initialize,您可以在其中添加初始值设定项和终结符:

module.exports = Marionette.Module.extend(
  initialize: () ->
    console.log('initialize module')
    @addInitializer((options) =>
        console.log 'starting module'
    )

)