Marionette模块没有触发'start'事件

时间:2014-01-08 20:41:12

标签: javascript backbone.js marionette

我已经创建了像这样的牵线木偶模块

App.module("HeaderApp", function (HeaderApp, App, Backbone, Marionette, $, _) {
    HeaderApp.on('start', function () {
        ...do something....
    });
});

当我调用App.module("HeaderApp").start()时,事件监听器不会触发,但是如果我手动触发该事件,它将会运行。

阅读marionette documentation似乎这应该有效。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

很可能,这是因为模块会自动启动应用程序,因此在您注册事件监听器时已经在运行。

要阻止自动启动,请将startWithParent设置为false(https://github.com/marionettejs/backbone.marionette/blob/master/docs/marionette.application.module.md#preventing-auto-start-of-modules):

App.module("HeaderApp", function (HeaderApp, App, Backbone, Marionette, $, _) {
    HeaderApp.startWithParent = false;

    HeaderApp.on('start', function () {
        ...do something....
    });
});

然后它应该按预期工作。