質問

このようなマリオネットモジュールを作成しました

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

App.module("HeaderApp").start()を呼び出すと、イベントリスナは起動しませんが、手動で実行されたイベントが実行されます。

Marionette Documentation これが機能する必要があるようです。任意のアイデア?

役に立ちましたか?

解決

おそらく、モジュールがアプリで自動的に起動し、したがってイベントリスナーを登録する時までにすでに実行されているためです。

自動起動を防ぐために、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....
    });
});
.

それからあなたが期待するときに働くべきです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top