2014-03-02 97 views
0

如上所述here,子模块上的 - startWithParent = false会导致sub-Moudle无法从应用程序启动。木偶 - “startWithParent = false”的原因是什么?

正如我所知,startWithParent = false中的子Moudue之后,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采取行动。

您能否为我澄清一下?

回答

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 ! 
相关问题