Módulo Marionette não dispara evento 'start'
-
20-12-2019 - |
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?
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