如描述here,子模块上的 - startWithParent = false
导致子模块不能从应用程序开始。
当我得到它时,在子Moudue中的startWithParent = false
之后,MyApp.start()
不应该执行子模块initializer
。
但是当我尝试以下时 -
MyApp = new Marionette.Application();
MyApp.module("SubModule", function () {
// prevent starting with parent
this.startWithParent = false;
// Logs
console.log("Sub Module Created !");
});
MyApp.start();
Sub Module Created !
日志,表示子模块initializer
已采取行动。
答案 0 :(得分:5)
中的代码
MyApp.module("SubModule", function () {
...
});
是模块定义并立即调用。要向模块添加初始化程序,您应该编写如下内容:
MyApp = new Marionette.Application();
MyApp.module("SubModule", function () {
// prevent starting with parent
this.startWithParent = false;
this.addInitializer(function(){
console.log("Sub Module Initialized !");
});
console.log("Sub Module Defined !");
});
MyApp.start();
console.log("My App Started !");
MyApp.SubModule.start();
在你的控制台中你会看到:
Sub Module Defined ! My App Started ! Sub Module Initialized !