我已经创建了一个这样的木偶模块
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....
});
});
然后,它应该会按预期工作。