我正在尝试使用commonJS模式在coffeescript中扩展木偶的模块类,以便可以要求通用的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

最佳答案

问题addInitializer是模块实例的方法,但是扩展时无法调用它。但是您可以覆盖空的默认initialize,在其中可以添加如下的初始化程序和终结程序:

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

)

关于javascript - 使用CoffeeScript,CommonJS扩展Backbone.Marionette模块,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22919116/

10-13 08:50