Pergunta

Eu criei um módulo de marionete como este

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

Quando eu ligo App.module("HeaderApp").start() o ouvinte de evento não dispara, no entanto, se eu acionar manualmente o evento, ele será executado.

Lendo o documentação de marionetes parece que isso deveria funcionar.Alguma ideia?

Foi útil?

Solução

Muito provavelmente, é porque o módulo é iniciado automaticamente com o aplicativo e, portanto, já está em execução no momento em que você registra o ouvinte de evento.

Para evitar o início automático, defina startWithParent para falso (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....
    });
});

Então deve funcionar como você espera.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top