2014-01-08 56 views
0

有些東西我並不真正瞭解如何使用requirejs和marionettejs。以requirejs開始牽引木偶模塊

所以我試圖用requirejs來使用牽線木偶模塊。

//app.js 
define(["marionette"], function(Marionette){ 

    var App = new Marionette.Application(); 
    App.startSubApp = function(appName, args) {...} 
    App.on("initialize:after", function(){ 
     require(["app/module1"], function() { 
      Backbone.history.start(); 
      App.startSubApp("module1"); 
     }); 
    } 
}); 



//module1.js 
define(["app"], function(App){ 

    App.module("module1", function(Module1, App, Backbone, Marionette, $, _){ 
     Module1.startWithParent = false; 

     Module1.onStart = function(){ 
      console.log("starting module1"); 
     }; 
    } 


}); 

問題是onStart處理程序從未觸發,因爲在App.startSubApp中,module1已經實例化。

我設法在module1.js調用startSubApp,而不是來解決這個問題:?

//app.js 
define(["marionette" , 'vent'], function(Marionette, vent){ 

    var App = new Marionette.Application(); 
    App.startSubApp = function(appName, args) {...} 
    App.on("initialize:after", function(){ 
     require(["app/module1"], function() { 
      Backbone.history.start(); 
      vent.trigger("start:module1"); 
     }); 
    } 
}); 


//module1.js 
define(["app",'vent'], function(App, vent){ 

    App.module("module1", function(Module1, App, Backbone, Marionette, $, _){ 
     Module1.startWithParent = false; 
     Module1.onStart = function(){ 
      console.log("starting module1"); 
     }; 
    } 
    vent.on('start:module1', function(){ 
     App.startSubApp("module1"); 
    }); 
}); 

我「M相當新的都requirejs和marionettejs所以能有人向我解釋了這種現象的原因

回答